ubuntu server 18.04,普通用户通过ssh,可以sudo后执行reboot,poweroff,但不sudo不行,如
userrer@hserver:~$ poweroff
Failed to set wall message, ignoring: Interactive authentication required.
Failed to power off system via logind: Interactive authentication required.
Failed to open /dev/initctl: Permission denied
Failed to talk to init daemon.
userr@hserver:~$ reboot
Failed to set wall message, ignoring: Interactive authentication required.
Failed to reboot system via logind: Interactive authentication required.
Failed to open /dev/initctl: Permission denied
Failed to talk to init daemon.
如果在本地登录,则poweroff和reboot都可以直接使用。
目前在ssh登录后,用sudo来关机,重启
但现在要想放在一个脚本中,又不想用root,有什么办法?
ubuntu server 18.04的ssh普通用户如何在脚本中关机、重启
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
-
- 帖子: 153
- 注册时间: 2006-10-10 11:01
- astolia
- 论坛版主
- 帖子: 6445
- 注册时间: 2008-09-18 13:11
Re: ubuntu server 18.04的ssh普通用户如何在脚本中关机、重启
systemd做重启关机等操作时的权限管理用的是polkit,你需要修改polkit的配置。
或者你也可以给用户userrer设置成用sudo reboot/poweroff操作不用密码
代码: 全选
echo '[Remote SSH]
Identity=unix-user:userrer
Action=org.freedesktop.login1.*
ResultAny=yes
ResultInactive=yes
ResultActive=yes' | sudo tee /etc/polkit-1/localauthority/50-local.d/power.pkla
代码: 全选
echo 'userrer ALL= NOPASSWD:/sbin/reboot
userrer ALL= NOPASSWD:/sbin/poweroff' | sudo tee /etc/sudoers.d/power