Existem algumas maneiras de conseguir isso. Alguém poderia estar trabalhando com uma conta regular não privilegiada, que exigirá executar o comando com sudo e digitar uma senha. Então você pode anexar o seguinte em / etc / sudoers (executando visudo):
## user is allowed to execute reboot -r only
jdoe ALL=NOPASSWD: /sbin/shutdown -r *
Além disso, para desativar o cache de credenciais do sudo, adicione também o seguinte:
Defaults timestamp_timeout=0
Isso impedirá o armazenamento em cache de credenciais, caso você tenha chamado um comando com sudo antes.
Exemplo:
[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 como no exemplo acima não era necessário digitar minha senha durante a execução sudo shutdown -r +10
, mas, pelo resto, era. Se você deseja remover a necessidade de digitar sudo antes do comando ( sudo shutdown -r +10
), adicione o seguinte ao seu .bash_profile ou .bashrc:
alias shutdown="sudo shutdown"
Exemplo:
[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:
Observe que é uma prática recomendada trabalhar com uma conta não privilegiada e escalar com o sudo quando necessário.