有人问过类似的问题,但我试过了,但无济于事。我怀疑过去行得通的方法在最新版本的 Ubuntu 中不起作用。我使用的是 Ubuntu Xenial 16.04。
我尝试了以下方法:
1.
pico /etc/polkit-1/50-local.d/disable-shutdown.pkla
然后用以下内容填充文件:
[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
这些方法对我来说不起作用。输入密码后,我仍然可以使用非 root 帐户重新启动服务器:
sudo reboot
编辑: 使用 xxx 的帐户:
sudo -l
给出
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
给出
/etc/sudoers:xxx ALL=(ALL:ALL) ALL
答案1
我认为我已经在 root 帐户上解决了我的问题:
visudo
然后注释掉这一行:
#xxx ALL=(ALL:ALL) ALL
答案2
如果你希望只授予 root 访问权限,你可以执行以下操作:
chmod 700 /sbin/reboot
chmod 700 /sbin/shutdown