尽管已从所有组中删除,但用户仍然具有 sudo 权限

尽管已从所有组中删除,但用户仍然具有 sudo 权限

我有一个用户,比如说userX在一台 Centos7 机器上。我已删除该用户的所有组,并且该用户现在仅分配给该组userX。但是,我仍然能够使用sudo su并成为root.

命令序列:
1.SSH以普通用户身份登录sriram
2.sudouserXsudo su - userX
3. 成为root:sudo su.这是允许的,无需密码等。理想的行为是userX不允许成为 root。

跑步:sudo -lU userX

[sudo] password for sriram:
Matching Defaults entries for userX on this host:
    requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT
    LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS
    _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin, timestamp_timeout=0

User userX may run the following commands on this host:
    (ALL) NOPASSWD: ALL
    (ALL) NOPASSWD: ALL

我哪里可能出错了?我需要提供哪些额外信息?

答案1

当排除sudo访问故障时,sudo -l非常有用。sudo -l打印您的sudo权限,并sudo -lU user打印该用户的sudo权限(如果您拥有所有权限)。

$ sudo -l
User muru may run the following commands on laptop:
    (ALL) ALL

sudo为每个匹配的规则打印一行,指定授予的权限,但不指定匹配条件。

例如,在三个不同的文件中使用以下三个规则:

%wheel ALL = (ALL) ALL
muru ALL = (ALL:ALL) ALL
%muru ALL = (ALL) ALL

输出可能是:

# sudo -lU muru
User muru may run the following commands on laptop:
    (ALL) ALL
    (ALL) ALL
    (ALL : ALL) ALL

您可以做的是查找授予这些权限的规则,并检查目标用户如何匹配它们。每行应该对应一个sudo与该用户匹配的规则,因此,如果有三行,则应该有三个规则(除非您的sudo配置很奇怪并且读取同一文件两次或其他什么)。

相关内容