Estoy usando Ubuntu 11.04. Quiero ejecutar un script que verifique si hay un proceso en ejecución y apaga el sistema cuando finaliza ese proceso. Para hacer esto, el usuario requiere acceso de apagado para que el script pueda ejecutarse sin requerir una contraseña.
Me referí a esta página y agregué el texto en mi archivo sudoers. Sin embargo, todavía me pide la contraseña cada vez que ejecuto sudo shutdown -h now
. Además, aparece un error que dice que se requieren privilegios de root cuando ejecuto el apagado sin sudo.
Mi archivo de sudoers se parece a esto.
# Cmnd alias specification
Cmnd_Alias SHUTDOWN = /sbin/shutdown
# User privilege specification
root ALL=(ALL:ALL) ALL
myusername ALL = NOPASSWD: SHUTDOWN
¿Cómo puedo dar permiso a un usuario para ejecutar el comando de apagado sin tener que ingresar la contraseña manualmente?
Gracias.
sudoers
archivo real y completo , por favor?Respuestas:
Puede apagar o reiniciar usando HAL o ConsoleKit, que no requerirá que ingrese un nombre de usuario / contraseña:
HAL (versiones anteriores de Ubuntu):
ConsoleKit (versiones más recientes de Ubuntu, probadas en Ubuntu 11.04):
fuente
Lo hice como en esta respuesta, funciona perfectamente para mí. Tal vez su enfoque pierde la
visudo
parte?Abra una línea de comando y escriba:
En el archivo que se abre, agregue la siguiente línea al final:
Luego salga del editor y protéjalo (CTRL + x).
Ahora puede apagar su computadora desde la línea de comandos, por ejemplo, después de descargar algo:
fuente
Hace algún tiempo hice esto configurando el suid (Establecer ID de usuario). Esto hace que el programa se ejecute como el propietario del archivo, no como el usuario que lo ejecuta. Dado que el apagado es propiedad de root, esto debería permitirle apagar sin sudo.
Sin embargo, existen implicaciones de seguridad ya que cualquiera puede ejecutar el apagado. http://en.wikipedia.org/wiki/Setuid
fuente
/etc
.sudo
es la forma correcta, en mi opinión, pero desafortunadamente el usuario no le da la oportunidad de ver susudoers
archivo, y qué tiene de malo.Parece que le gustaría ejecutar el script en sí mismo como root. Si desea ejecutar un script que espere a que algo termine y luego apague su computadora, simplemente ejecute el script con sudo. Eso le pedirá su contraseña cuando ejecute el script, pero luego el script en sí es libre de apagar el sistema sin ninguna otra intervención.
fuente