我有一个用户,比如说userX在 Centos7 机器上。我已经从这个用户中删除了所有的组,这个用户现在只分配给了组userX。但是,我仍然可以使用sudo su并成为root.
命令序列:
1.SSH作为普通用户sriram。
2.sudo对userX:sudo su - userX。
3.成为根: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
Run Code Online (Sandbox Code Playgroud)
我哪里会出错?需要我提供哪些额外信息?
当故障排除sudo访问时,sudo -l非常有用。sudo -l打印您的sudo权限,并sudo -lU user打印该用户的sudo权限(如果您拥有所有权限)。
$ sudo -l
User muru may run the following commands on laptop:
(ALL) ALL
Run Code Online (Sandbox Code Playgroud)
sudo 为每个匹配的规则打印一行,指定授予的权限,但不指定匹配条件。
例如,在三个不同的文件中使用以下三个规则:
%wheel ALL = (ALL) ALL
muru ALL = (ALL:ALL) ALL
%muru ALL = (ALL) ALL
Run Code Online (Sandbox Code Playgroud)
输出可能是:
# sudo -lU muru
User muru may run the following commands on laptop:
(ALL) ALL
(ALL) ALL
(ALL : ALL) ALL
Run Code Online (Sandbox Code Playgroud)
您可以做的是查找授予这些权限的规则,并检查目标用户如何匹配它们。每一行应该对应一个sudo与这个用户匹配的规则,所以,如果有三行,就应该有三个规则(除非你的sudo配置很奇怪,读取同一个文件两次什么的)。
| 归档时间: |
|
| 查看次数: |
354 次 |
| 最近记录: |