sudo 组中的用户不能使用 sudo 命令

sudo 组中的用户不能使用 sudo 命令

我有一个用户,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自己已经改变了文件!:)

相关内容