![sudo 组中的用户不能使用 sudo 命令](https://linux22.com/image/1103028/sudo%20%E7%BB%84%E4%B8%AD%E7%9A%84%E7%94%A8%E6%88%B7%E4%B8%8D%E8%83%BD%E4%BD%BF%E7%94%A8%20sudo%20%E5%91%BD%E4%BB%A4.png)
我有一个用户,supersecretuser
他在sudo
群组中,但没有sudo
访问权限。是否还需要执行其他操作才能授予此用户sudo
访问权限?
$ ssh supersecretuser@myserver
supersecretuser@myserver:~$ groups
supersecretuser adm cdrom sudo dip plugdev lpadmin sambashare
supersecretuser@myserver:~$ sudo vim install.sh
[sudo] password for supersecretuser:
supersecretuser is not in the sudoers file. This incident will be reported.
supersecretuser
是我们在安装 Ubuntu 时设置的用户。
答案1
由于您的错误信息表明您的用户is not in the sudoers file
,请您检查您的/etc/sudoers
文件,看看是否有这样的行:
%sudo ALL=(ALL:ALL) ALL
如果缺少此行,则sudo
组中的用户将不是 sudoers。使用visudo
命令编辑文件(检查语法是否正确并锁定文件)。
您还可以尝试添加如下自定义行:
root ALL=(ALL:ALL) ALL
替换root
为您的用户名,重新启动,然后尝试是否有效。
答案2
根据您在评论中与@steeldriver 的对话,我猜测您的用户尚未注销。
确保已supersecretuser
注销的最简单方法是以另一个用户的身份在终端中输入who
。
当这样做时,我得到如下输出:
mitch@quartz:~$ who
mitch :0 2014-09-08 09:49 (:0)
mitch pts/0 2014-09-08 13:18 (:0.0)
我只看到我自己。同样,w
在终端中输入内容可以显示所有登录的用户以及他们在做什么:
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
mitch :0 :0 09:49 ?xdm? 29:08 0.11s init --user
mitch pts/0 :0.0 13:18 5.00s 0.06s 0.01s w
您可以使用以下命令停止其他用户(我称之为 SSU):
pkill -STOP -u SSU
然而,说实话,如果可能的话,最简单的解决办法就是重新启动系统。
答案3
将 supersecretuser 添加到 sudo 组的最简单方法是sudo gpasswd -a supersecretuser sudo
让 supersecretuser 注销/重新登录;但如果您失去了使用 sudo 的能力,恐怕您必须重新安装。
答案4
检查文件权限正确后:
-r--r----- 1 root root x x x x:x /etc/sudoers
您很可能丢失了s
文件可执行文件的 -bit,它应该是:
-rwsr-xr-x 2 root root x x x x /usr/bin/sudo
如果没有:使用 root 权限给出`
chmod u+s /usr/bin/sudo
你应该没事..除非你知道你sudoers
自己已经改变了文件!:)