要运行该命令,poweroff或者reboot需要一个超级用户。无论如何,我可以以普通用户身份运行它吗?我只是不想,sudo每次重启或关闭电源时都输入密码。
systemd的Ubuntu,所以您是说其他发行版(例如Arch)可以在没有特权的情况下重启?
                要运行该命令,poweroff或者reboot需要一个超级用户。无论如何,我可以以普通用户身份运行它吗?我只是不想,sudo每次重启或关闭电源时都输入密码。
systemd的Ubuntu,所以您是说其他发行版(例如Arch)可以在没有特权的情况下重启?
                Answers:
我进行了更改,/etc/sudoers以便admin组中的每个用户都可以执行以下命令,而无需输入密码。
sudo halt
sudo reboot
sudo poweroff
您只需将以下行添加到 /etc/sudoers
## Admin user group is allowed to execute halt and reboot 
%admin ALL=NOPASSWD: /sbin/halt, /sbin/reboot, /sbin/poweroff
并将自己添加到管理组。
如果你只需要一个用户能够做到这一点只是删除了%admin,取而代之的是username这样的
## user is allowed to execute halt and reboot 
stormvirux ALL=NOPASSWD: /sbin/halt, /sbin/reboot, /sbin/poweroff
您可以/etc/sudoers通过man sudoers或在线联机帮助找到更多信息。
您还可以根据需要在其/etc/sudoers.d名称下创建一个新文件(我命名为'shutdown'),并在其中放入以下几行:
# Allows me to shutdown the system without a password
yourUserName ALL = NOPASSWD: /sbin/halt, /sbin/reboot, /sbin/poweroff
只需将“ yourUserName”更改为您的用户名,然后添加或删除要使用的命令,就我个人而言,它仅用于shutdown。在其下创建特定文件的主要区别之一sudoers.d是该文件将在系统升级后继续存在
/etc/sudoers具有相应的#include指令以从中读取文件/etc/sudoers.d/。
                    最简单的解决方案:
sudo echo $USER >> /etc/shutdown.allow
然后,您可以使用以下命令之一:
shutdown -ah now   // halt
shutdown -ar now   // reboot
根据man shutdown,有-a选项可以用于非root用户使用:
如果
shutdown使用-a参数调用(将其添加到/ etc / inittab中的shutdown调用中),它将检查是否存在文件/etc/shutdown.allow。然后,它将该文件中的登录名与在虚拟控制台上登录的人员列表进行比较...
它可以在Debian Linux中使用。并且中最多可以包含32个用户名/etc/shutdown.allow。
systemd和活动logind会话,您可以在没有提升特权的情况下重新引导或