Linux下普通用户执行关机、重启指令

方法1(推荐)

在root用户下用visudo命令添加以下代码到/etc/sudoers文件的末端。替换其中的user为你的用户名,hostname为你的主机名(可以使用hostname命令查询)。

user hostname=NOPASSWD: /sbin/shutdown -h now
user hostname=NOPASSWD: /sbin/reboot

或者合并为一行表示

user hostname=NOPASSWD: /sbin/shutdown -h now,/sbin/reboot

修改完之后ctrl+o写入,ctrl+x退出编辑。
现在你的用户可以用sudo shutdown -h now命令关机,reboot命令重启了。

注意:修改完仔细检查,写错了会导致无法进入root权限,如果出现了错误可以参照文章最后进行修复

方法2(不安全)

root@localhost ~]#whereis reboot                        #查找reboot的位置
reboot: /sbin/reboot  /usr/share/man/man8/reboot.8.gz
[root@localhost ~]#su user                              #切换到user
[user@localhost root]$ reboot                           #执行重启测试
reboot: Need to be root                                 #提示需要root
[user@localhost root]$ exit                             #退回到root用户
exit
[root@localhost ~]# ll /sbin/reboot         #查看默认/sbin/reboot的详细信息
-rwxr-xr-x. 1 root root 13932 Jul 19  2011 /sbin/reboot #注意看前三个为rwx
[root@localhost ~]# chmod u+s /sbin/reboot              #增加suid权限
[root@localhost ~]# ll /sbin/reboot                     #重新查看修改后的/sbin/reboot详细信息
-rwsr-xr-x. 1 root root 13932 Jul 19  2011 /sbin/reboot #这时候已经变更为rws
[root@localhost ~]# su user                             #重新切换到user用户
[user@localhost root]$ reboot                           #执行reboot指令

方法3(xfce桌面下,gnome等桌面并不可行)

在Xfce下,如果你希望用户利用Halt关机,需要安装sudo。然后用visudo -f命令添加以下内容到/etc/sudoers中
对所有用户:

%users hostname=NOPASSWD:/usr/lib/xfce4/xfsm-shutdown-helper

对单一用户:

user hostname=NOPASSWD:/usr/lib/xfce4/xfsm-shutdown-helper

替换其中的user为你的用户名,hostname为你的主机名。
这样你定义了的用户的“关机”和“重启”选项就激活了。

意外情况

因为修改了/etc/sudoers以及相关权限,导致sudo无法使用,错误如下:

sudo: >>> /etc/sudoers:syntax error 在行 32 附近<<<   
sudo: /etc/sudoer中第 32 行附近有解析错误   
sudo: 没有找到有效的 sudoers 资源,退出                                         
sudo: 无法初始化策略插件

解决方法:
1、重启ubuntu,启动时按Esc或Shift键,可以看到引导选项;
2、在引导选项中选择Recovery模式的那一项来引导;
3、进入Recovery Menu页面,选择root,也就是进入试用root用户进行系统恢复,在这里可以执行超级用户的权限的操作,回车后可以看到熟悉的 root@user ~# 命令提示符;
4、设置或者撤销/etc/sudoers文件的权限,也可以将该文件改回到发生错误之前的状态。

    chmod 666 /dev/null
    mount -o remount rw /
    vi /etc/sudoers 
    恢复本文件内容并存盘(:wq!)

5、退出Recovery模式,重新启动ubuntu。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

画茧自缚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值