我有 Ubuntu 桌面版。
我喜欢终端,因此我更喜欢用命令来关闭我的电脑shutdown
。
但是,当我输入时,shutdown now
它会提示我输入密码。有什么方法可以使用它来关闭计算机而不输入密码吗?
答案1
打开终端(CTRL + T)并输入以下内容 sudo visudo
添加以下行:
%group_name ALL=(ALL) NOPASSWD: /sbin/poweroff, /sbin/reboot, /sbin/shutdown
或者
user_name ALL=(ALL) NOPASSWD: /sbin/poweroff, /sbin/reboot, /sbin/shutdown
这允许用户/组运行上述三个命令,使用 sudo,但没有密码。
因此,sudo poweroff
现在将导致无密码关机。
但是,为了使其更加清晰,我们将添加一个别名,以便运行shutdown
调用sudo shutdown now
。
打开~/.bash_aliases
以进行编辑。
nano ~/.bash_aliases
在文件末尾插入以下行:
alias shutdown='sudo shutdown now'
最后,将更改加载到文件.bash_aliases
...
source ~/.bash_aliases
试试看!
shutdown
谢谢,埃里克。
答案2
一种安全的方法无需使用 sudo并且无需修改系统,只需执行这些单行命令:
对于 Ubuntu 15.04 及更高版本:
(这是由于 Ubuntu 已转用systemd
而导致的Upstart
)
systemctl poweroff
systemctl reboot
systemctl suspend
systemctl hibernate
systemctl hybrid-sleep
自从休眠在 Ubuntu 系统中,它通常是默认禁用的,你可以通过检查来启用它这个答案。原文出处在这里。
对于 Ubuntu 14.10 或更早版本:
关闭:
/usr/bin/dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
重新开始:
/usr/bin/dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
控制台工具当然应该安装到你的系统中。
您可能喜欢的其他命令:
暂停:
/usr/bin/dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
休眠:(如果您的系统已启用)
/usr/bin/dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
答案3
unity 使用许多 gnome 服务,在这种情况下,您也可以通过 gnome 方式关闭。
gnome-session-quit --power-off --force --no-prompt
将会完成这项工作。
答案4
在 Ubuntu 20.04 LTS 上,我创建了一个polkit
文件
echo "[Shutdown or suspend without a password]
Identity=unix-user:$USER
Action=org.freedesktop.login1.set-wall-message;org.freedesktop.login1.halt;org.freedesktop.login1.suspend
ResultAny=yes
" | sudo tee /etc/polkit-1/localauthority/50-local.d/allow_shutdown_suspend.pkla
有了它,无需密码即可工作。它还可以远程工作,systemctl halt
例如。systemctl suspend
ssh 192.168.0.55 -t 'systemctl suspend'