¿Cuál es la forma correcta de permitir que un usuario normal apague, detenga o reinicie la computadora?

3

Mi solución sucia es chmod +s /sbin/shutdown. Funciona, pero esto probablemente no sea una buena práctica e inseguro. Además, después de algunas actualizaciones del sistema, el bit suid se restablece. ¿Cuál sería la forma correcta de hacerlo?

ccpizza
fuente
por lo general lo hagosudo shutdown now -h
kobaltz

Respuestas:

3

¿Todos los usuarios? ¿O un subconjunto seleccionado de ellos? ¿Usarán la computadora localmente o también de forma remota (por ejemplo, a través de ssh)?

En el caso de unos pocos usuarios que también trabajan de forma remota, sudo funcionará bien. Vea este enlace para más detalles.

Si están iniciando sesión localmente y a través de una GUI, entonces hay mejores opciones. Por ejemplo, capturar el saludo de tres dedos a través de init y dejar que eso active un apagado retrasado de 1 minuto. Sin embargo, han pasado años desde que configuré eso, así que omito los detalles para eso. (Lo usé cuando Slackware 3 era moderno)

Hennes
fuente
Ya sea un solo usuario o un grupo como% users. La idea es evitar usar sudotodo el tiempo e ingresar contraseñas. De acuerdo con el enlace que publicaste, una línea en sudoers como %users ALL=NOPASSWD:/sbin/shutdownes probablemente todo lo que necesito. ¡Gracias!
ccpizza
2

Si shutdownacepta el -acambio (consulte con shutdown --help), puede hacer lo siguiente:

  • Agregue los usuarios que deberían poder apagar el sistema /etc/shutdown.allow.

    Ejemplo:

    userA
    userB
    
  • Apague el sistema con el -ainterruptor.

    Ejemplo:

    shutdown -a -h now
    

Fuente: páginas de manual de UNIX: shutdown (8)

Dennis
fuente
Parece que mi versión de shutdown(Linux genérico de la familia -buntu) no admite la -aopción. Parece que la forma esperada es crear un grupo de% de apagado que incluiría a los usuarios que necesitan apagarse y luego hacer referencia a eso en el archivo sudoers.
ccpizza
1

Yo uso SL 6.4. Tiene la versión de usuario de apagado, detención, reinicio proporcionado por el paquete de modo de usuario. Puedo apagar, reiniciar como un usuario normal (también desde la línea de comando)

    $ which {poweroff,reboot,halt}
    /usr/bin/poweroff
    /usr/bin/reboot
    /usr/bin/halt

    rpm -qf $(which poweroff reboot halt)
    usermode-1.102-3.el6.x86_64
    usermode-1.102-3.el6.x86_64
    usermode-1.102-3.el6.x86_64

Como raíz

    # which {poweroff,reboot,halt}
    /sbin/poweroff
    /sbin/reboot
    /sbin/halt

    # rpm -qf $(which poweroff reboot halt)
    upstart-0.6.5-12.el6.x86_64
    upstart-0.6.5-12.el6.x86_64
    upstart-0.6.5-12.el6.x86_64
trekkerboy
fuente