Usa la NOPASSWD
directiva
Puede usar la NOPASSWD
directiva en su /etc/sudoers
archivo .
Si se llama a su usuario y se llama a user
su host host
, puede agregar estas líneas a /etc/sudoers
:
user host = (root) NOPASSWD: /sbin/shutdown
user host = (root) NOPASSWD: /sbin/reboot
Esto permitirá al usuario user
ejecutar los comandos deseados host
sin ingresar una contraseña. Todos los demás sudo
comandos ed aún requerirán una contraseña.
Los comandos especificados en el sudoers
archivo deben estar completamente calificados (es decir, usar la ruta absoluta al comando para ejecutar) como se describe en la sudoers
página del manual . Proporcionar una ruta relativa se considera un error de sintaxis.
Si el comando termina con un /
carácter final y apunta a un directorio, el usuario podrá ejecutar cualquier comando en ese directorio (pero no en ningún subdirectorio). En el siguiente ejemplo, el usuario user
puede ejecutar cualquier comando en el directorio /home/someuser/bin/
:
user host = (root) NOPASSWD: /home/someuser/bin/
Nota: Utilice siempre el comando visudo
para editar el sudoers
archivo para asegurarse de no bloquearse del sistema, en caso de que accidentalmente escriba algo incorrecto en el sudoers
archivo. visudo
guardará el archivo modificado en una ubicación temporal y solo sobrescribirá el sudoers
archivo real si el archivo modificado se puede analizar sin errores.
Usar en /etc/sudoers.d
lugar de modificar/etc/sudoers
Como alternativa a la edición del /etc/sudoers
archivo, puede agregar las dos líneas a un nuevo archivo, por /etc/sudoers.d
ejemplo /etc/sudoers.d/shutdown
. Esta es una manera elegante de separar diferentes cambios a los sudo
derechos y también deja el sudoers
archivo original intacto para facilitar las actualizaciones.
Nota: Nuevamente, debe usar el comando visudo
para editar el archivo para asegurarse de no bloquearse del sistema:
sudo visudo -f /etc/sudoers.d/shutdown
Esto también garantiza automáticamente que el propietario y los permisos del nuevo archivo estén configurados correctamente.
Si sudoers
está en mal estado
Si no usó visudo
para editar sus archivos y luego accidentalmente desordenó /etc/sudoers
o desordenó un archivo, /etc/sudoers.d
entonces se lo bloqueará sudo
.
La solución podría ser arreglar los archivos usando pkexec
una alternativa a sudo
.
Para arreglar /etc/sudoers
:
pkexec visudo
Para arreglar /etc/sudoers.d/shutdown
:
pkexec visudo -f /etc/sudoers.d/shutdown
Si la propiedad y / o los permisos son incorrectos para cualquier sudoers
archivo, el archivo será ignorado por sudo
lo que también podría quedar bloqueado en esta situación. De nuevo, puedes usar pkexec
para arreglar esto.
Los permisos correctos deberían ser así:
$ ls -l /etc/sudoers.d/shutdown
-r--r----- 1 root root 86 Jul 16 15:37 /etc/sudoers.d/shutdown
Úselo pkexec
así para corregir la propiedad y los permisos :
pkexec chown root:root /etc/sudoers.d/shutdown
pkexec chmod 0440 /etc/sudoers.d/shutdown