Des questions similaires ont été posées à ce sujet ici, mais je les ai essayées en vain. Je soupçonne que ce qui fonctionnait dans le passé n’a pas fonctionné dans les dernières versions d’Ubuntu. J'utilise Ubuntu Xenial 16.04.
J'ai essayé ce qui suit:
1.
pico /etc/polkit-1/50-local.d/disable-shutdown.pkla
Puis remplissez le fichier avec:
[Disable shutdown/restart etc. for users]
Identity=unix-user:a;unix-group:b;
Action=org.freedesktop.login1.reboot;org.freedesktop.login1.reboot-multiple-sessions;org.freedesktop.login1.power-off;org.freedesktop.login1.power-off-multiple-sessions;org.freedesktop.consolekit.system.stop;org.freedesktop.consolekit.system.restart;org.freedesktop.upower.suspend;org.freedesktop.upower.hibernate;org.freedesktop.login1.suspend;org.freedesktop.login1.suspend-multiple-sessions;org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultAny=no
ResultInactive=no
ResultActive=no
2.
chmod o-x /sbin/shutdown
chmod o-x /sbin/reboot
Ces méthodes n'ont pas fonctionné pour moi. Je pouvais toujours redémarrer le serveur avec un compte non root après avoir entré le mot de passe:
Sudo reboot
EDIT: Avec le compte de xxx:
Sudo -l
donne
Matching Defaults entries for xxx on scw-415fa7:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:
/usr/bin\:/sbin\:/bin\:/snap/bin
User xxx may run the following commands on scw-415fa7:
(ALL : ALL) ALL
.
Sudo grep xxx /etc/sudoers* -R
donne
/etc/sudoers:xxx ALL=(ALL:ALL) ALL
Je pense avoir résolu mon problème avec ceci sur le compte root:
visudo
Puis commentez cette ligne:
#xxx ALL=(ALL:ALL) ALL
Si vous voulez donner accès uniquement à root, vous pouvez faire:
chmod 700 /sbin/reboot
chmod 700 /sbin/shutdown