让普通用户关闭、停止或重新启动计算机的正确方法是什么?

让普通用户关闭、停止或重新启动计算机的正确方法是什么?

我的肮脏解决方案是chmod +s /sbin/shutdown。它有效,但这可能不是好的做法,而且不安全。此外,在某些系统更新后,suid 位会被重置。正确的做法是什么?

答案1

所有用户?还是其中选定的子集?他们将在本地使用计算机还是远程使用计算机(例如通过 ssh)。

如果有几个用户也远程工作须藤可以正常工作。请参阅此链接了解详情。

如果他们通过 GUI 本地登录,那么还有更好的选择。例如,通过 init 捕获三指手势,并让其触发 1 分钟延迟关机。不过,我已经很久没有设置它了,所以我跳过了细节。(我在 Slackware 3 还很现代的时候就用过它了)

答案2

如果您shutdown接受-a转换(使用 确认shutdown --help),您可以执行以下操作:

  • 添加有权关闭系统的用户/etc/shutdown.allow

    例子:

    userA
    userB
    
  • 使用开关关闭系统-a

    例子:

    shutdown -a -h now
    

来源:UNIX 手册页:关机(8)

答案3

我使用 SL 6.4。它具有由 usermode 包提供的用户版 poweroff、halt、reboot。我可以以普通用户身份关机、重启(也可以从命令行)

    $ which {poweroff,reboot,halt}
    /usr/bin/poweroff
    /usr/bin/reboot
    /usr/bin/halt

    rpm -qf $(which poweroff reboot halt)
    usermode-1.102-3.el6.x86_64
    usermode-1.102-3.el6.x86_64
    usermode-1.102-3.el6.x86_64

以 root 身份

    # which {poweroff,reboot,halt}
    /sbin/poweroff
    /sbin/reboot
    /sbin/halt

    # rpm -qf $(which poweroff reboot halt)
    upstart-0.6.5-12.el6.x86_64
    upstart-0.6.5-12.el6.x86_64
    upstart-0.6.5-12.el6.x86_64

相关内容