4 linux shutdown not-root-user
我最近放弃了我的桌面环境,现在只使用窗口管理器 (i3) 和 X。一切都很好,我不会错过太多。除了一件事:关机按钮。我现在只能通过发出以下命令来关闭:
sudo shutdown -Ph now
从终端。这有效,但我想在 i3 中创建一个键绑定以通过单击关闭Mod+x
。我不确定这是如何实现的。如果我在 say 中创建一个脚本~/shutdown
并参考这个:
bindsym $mod+x exec ~/shutdown
那么这行不通;我想是因为我以普通用户身份运行,并且在此脚本中执行 sudo。我可以让终端出现并提示我输入密码(尽管我更喜欢这不需要密码,如果可能的话),但我不知道如何做到这一点。有什么方法可以完成这项工作?
使用 Arch Linux。
如果您使用D-Bus 会话和ConsoleKit(这是大多数现代桌面系统的默认组件,因此您可能已经安装了它),则系统关机方法比sudo shutdown
这种方法更简洁,并且不需要任何 root 权限。 :
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" \
/org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
Run Code Online (Sandbox Code Playgroud)
同样,系统重启可以通过
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" \
/org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
Run Code Online (Sandbox Code Playgroud)
您可以将它们放在脚本中并添加快捷方式或菜单项来调用它们。