Ci sono alcuni modi per raggiungere questo obiettivo. Si lavorerebbe con un normale account non privilegiato che richiederà l'esecuzione del comando con sudo e l'inserimento di una password. Quindi puoi aggiungere il seguente a / etc / sudoers (eseguendo visudo):
## user is allowed to execute reboot -r only
jdoe ALL=NOPASSWD: /sbin/shutdown -r *
Inoltre, per disabilitare la memorizzazione nella cache delle credenziali sudo, aggiungere anche quanto segue:
Defaults timestamp_timeout=0
Ciò impedirà la memorizzazione nella cache delle credenziali nel caso in cui sia stato precedentemente richiamato un comando con sudo.
Esempio:
[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:
Nota come nell'esempio sopra non mi è stato richiesto di inserire la mia password durante l'esecuzione sudo shutdown -r +10
, ma per il resto lo ero. Se si desidera rimuovere la necessità di digitare sudo prima del comando ( sudo shutdown -r +10
), aggiungere quanto segue al proprio .bash_profile o .bashrc:
alias shutdown="sudo shutdown"
Esempio:
[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:
Si noti che è consigliabile lavorare con un account senza privilegi e intensificare con sudo quando richiesto.