The New Cult of Dead Cow

July 21, 2006






Apagar el sistema

Filed under: Programacion, Linux, Articulo

El Problema :

Hace poco mi amigo DanielX, me comento que estaba con un problemilla que no le daba solución en su proyecto de TerminalLinux. El tema era el siguiente:

Cuando esta en una máquina remota, y le decia apagar el sistema … el condenado comando apagaba la maquina principal. Obviamente esto representaba un gran lio. Imaginemos una aula con 30 PCs conectadas a un servidor de aplicaciones. Ahora alguien se le ocurre salir a comer y quiere apagar su maquina… y juaz !!! de repente tienes a una treintena de usuarios compresiblemente molestos porque se apagaron sus maquinas junto con todo el trabajo de la mañana.

La Solucion:

Bueno, la solución a esto parte de un comando bastante simple de linux: Los Alias.

Que son los alias ? Pues los alias son como sinonimos de comandos en linux. Por ejemplo, en mi sistema a mi me aburre mucho tener que tipear sudo aptitude search <paquete> para buscar algun paquete para mi sistema. Entonces defino un alias de esta manera: alias search=’sudo aptitude search ‘

Y listo, ahora cada vez que quiera buscar algun paquete en mi repositorio, lo unico que tengo q hacer es search <paquete>.

La solución para el problema inicial, tambien pasa por ahi. Definimos un alias llamado halt asi
alias halt = ‘/usr/local/halt’
Para que esto funcione ese alias debe estar siempre disponible, entonces agregamos esa linea a nuesto ~/.bashrc

Ese nuevo halt ( /usr/local/halt ) es un script raquitico en python.


#!/usr/bin/python

## halt remoto
##
## Autor: NeCuDeCo
##

from commands import getoutput
import re

aux = getoutput("echo $DISPLAY")

res = re.search("([a-z0-9A-Z\.]*).*",aux)
pc = res.group(1)

if pc == "": # Entonces es la maquina local
/sbin/halt
else: # es una maquina remota
print "apagamos la maquina remota"
print getoutput("ssh apagar@"+pc)

Con este script el sistema reconoce si se esta ejecutando desde el servidor principal o desde una maquina remota.

Ahora lo unico que faltaria seria crear un usuario apagar en la(s) maquina(s) remota(s) con los permisos adecuados y en lugar de un shell darle a ejecutar /sbin/halt

Nota: Espero q te sirva mi idea daniel, y suerte en el coneis !!! (Y)

2 Comments »

The URI to TrackBack this entry is: http://necudeco.blogsome.com/2006/07/21/apagar-el-sistema/trackback/

  1. Hay muchas formas de dar solución al problema, lo más lógico sería que nadie excepto el root pueda hacer reboot/halt. Para ello basta con trabajar con los permisos de los respectivos binarios.

    Por otro lado, si quieres que un alias este disponible para todos los usuarios puedes usar /etc/profile o /etc/bashrc o el equivalente para la distribucion que esten usando.

    saludos

    Comment by Slayer_X — July 21, 2006 @ 6:05 am

  2. Debe haber configurado mal LTSP, de hecho esas opciones no están (ni deberian) disponibles para las estaciones remotas.

    Comment by Rudy — July 22, 2006 @ 8:02 am

RSS feed for comments on this post.

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>























Get free blog up and running in minutes with Blogsome
Theme designed by B A Khan