[root@sz-test-storage-01 log]# su - sdd
su: Authentication failure
[root@sz-test-storage-01 log]#
这种限制下,普通用户给了sudo权限,也无法sudo su - root
需要:sudo -su root登录,root想切换到普通用户也得sudo -su sdd才能切换,无法直接su - sdd切换。
排查过程:
用户没问题
用户也加入了wheel
/var/log/audit/audit.log日志不存在,解决:
sudo mkdir -p /var/log/audit
sudo chmod 750 /var/log/audit
sudo systemctl start auditd
查看日志发现:
/usr/bin/su 和/bin/su 是一个文件,权限也无没问题
ok,最后查认证模块,发现问题。
[root@sz-test-storage-01 log]# cat /etc/pam.d/su
#%PAM-1.0
auth sufficient pam_rootok.so
auth required pam_wheel.so group=wheel
auth required pam_wheel.so use_uid
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth required pam_wheel.so use_uid
auth substack system-auth ###把这行注释打开即可
auth include postlogin
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session include postlogin
session optional pam_xauth.so
在 PAM(Pluggable Authentication Modules)配置中,auth substack system-auth
这一行表示包含了名为 system-auth
的认证配置文件中的所有规则。这个语法中的 substack
关键字指示 PAM 在当前位置加载另一个配置文件的所有规则,并将它们插入到当前位置。
1、su 用户名 (不加参数-)
这样只是切换了用户,但是shell环境还是原来用户的shell环境,我们可以用pwd来查看
2、su - 用户名
这样就能登录到切换用户的shell环境
3. sudo su - root
这条命令尝试以 root 用户身份启动一个新的 shell。
如果 root 用户被禁止登录或密码设置为无效,则可能会导致登录失败。
4. sudo -su root
这条命令在当前 shell 中以 root 用户身份执行指定的命令,但不会启动新的 shell。
因此,这个命令不会尝试登录 root 用户,而是直接在当前 shell 中以 root 用户的身份执行后续的命令。
5. sudo su root:
这条命令尝试使用 su 命令以 root 用户的身份登录,相当于 su root。
如果 root 用户被禁止登录或密码设置为无效,则可能会导致登录失败。