Existem algumas maneiras de conseguir isso. Uma pessoa estaria trabalhando com uma conta regular sem privilégios que exigiria a execução do comando com o sudo e a inserção de uma senha. Então você pode acrescentar o seguinte ao / etc / sudoers (executando o visudo):
## user is allowed to execute reboot -r only
jdoe ALL=NOPASSWD: /sbin/shutdown -r *
Além disso, para desativar o cache de credenciais sudo, inclua também o seguinte:
Defaults timestamp_timeout=0
Isso impedirá o armazenamento em cache de credenciais caso você invoque um comando com o 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 precisei inserir minha senha ao executar sudo shutdown -r +10
, mas para o resto eu estava. Se você quiser 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 sem privilégios e escalonar com o sudo quando necessário.