Hay algunas formas de lograr esto. Uno estaría trabajando con una cuenta regular sin privilegios que requerirá ejecutar el comando con sudo e ingresar una contraseña. Luego puede agregar lo siguiente a / etc / sudoers (ejecutando visudo):
## user is allowed to execute reboot -r only
jdoe ALL=NOPASSWD: /sbin/shutdown -r *
Además, para deshabilitar el almacenamiento en caché de credenciales de sudo, agregue también lo siguiente:
Defaults timestamp_timeout=0
Esto evitará el almacenamiento en caché de credenciales en caso de que haya invocado un comando con sudo anteriormente.
Ejemplo:
[root@ops ~]# su - jdoe
[jdoe@ops ~]$ sudo shutdown -c
[sudo] password for jdoe:
[jdoe@ops ~]$ sudo shutdown -r +10
Shutdown scheduled for Mon 2018-09-03 18:51:13 IDT, use 'shutdown -c' to cancel.
[jdoe@ops ~]$ sudo shutdown -H
[sudo] password for jdoe:
^[[A[jdoe@ops ~]$ sudo shutdown -c
[sudo] password for jdoe:
Observe cómo en el ejemplo anterior no se me solicitó ingresar mi contraseña cuando se ejecutaba sudo shutdown -r +10
, pero por el resto sí. Si desea eliminar la necesidad de escribir sudo antes del comando ( sudo shutdown -r +10
), agregue lo siguiente a su .bash_profile o .bashrc:
alias shutdown="sudo shutdown"
Ejemplo:
[jdoe@ops ~]$ source ~/.bash_profile
[jdoe@ops ~]$ shutdown -r +10
Shutdown scheduled for Mon 2018-09-03 19:03:14 IDT, use 'shutdown -c' to cancel.
[jdoe@ops ~]$ shutdown -c
[sudo] password for jdoe:
Tenga en cuenta que es una buena práctica trabajar con una cuenta no privilegiada y escalar con sudo cuando sea necesario.