我无法将普通用户切换到 root 用户,并且出现以下错误:
[user2@server1 ~]$ su -
Password:
su: Authentication failure
我确实知道密码是正确的。
另外我的 su 文件的权限对于 su 是正确的
[user2@server1 ~]$ ll /bin/su -rwsr-xr-x. 1 root root 32032 Mar 28 2014 /bin/su
每次我尝试登录并被拒绝时,我都会在 /var/log/secure 文件中看到以下消息
'Nov 2 14:17:54 server1 su: pam_unix(su-l:auth): authentication failure; logname=user2 uid=1000 euid=0 tty=tty1 ruser=user2 rhost= user=root
Nov 2 14:17:54 server1 su: pam_succeed_if(su-l:auth): requirement "uid >= 1000" not met by user "root'
现在我不太明白这些消息。我觉得它指向的是 UID 为 1000 的用户名。我想我错误地删除了我的用户名“用户 1”,它被附加到 UID 1000。现在系统甚至不允许我添加用户 ID 用户 1,说它已经存在,甚至不允许我删除它!
[root@server1 ~]# useradd user1
useradd: user 'user1' already exists
[root@server1 ~]# userdel -r user1
userdel: user user1 is currently used by process 3300
user2 3300 3288 0 14:27 ? 00:00:00 sshd: user2@pts/1
需要帮忙!
添加用户 3 并尝试 su -
[user3@server1 ~]$ su -
Password:
su: Authentication failure
[user3@server1 ~]$ id
uid=1001(user3) gid=1001(user3) groups=1001(user3) context=staff_u:staff_r:staff_t:s0
添加了 user2,系统自动为其分配了 UID 1000,但它也不起作用
[user2@server1 ~]$ su -
Password:
su: Authentication failure
这很奇怪
[user2@server1 ~]$ id user1
uid=1000(user2) gid=1000(user2) groups=1000(user2)
[user2@server1 ~]$ id user2
uid=1000(user2) gid=1000(user2) groups=1000(user2)
以下是我的 su 文件的样子
[root@server1 ~]# cat /etc/pam.d/su
#%PAM-1.0
auth sufficient pam_rootok.so
# 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
我也尝试删除“so uid = 0”,但结果相同
答案1
在您的pam.d
配置 ( /etc/pam.d/
) 中,您可能在某处执行 UID 检查,或者已自动添加。当执行此操作的用户su -
ID 超过 1000 时会发生问题,这在您的例子中是真的;然后 pam.d 将拒绝您的su -
尝试。
查看上述目录并找到包含如下内容的文件:
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
(可能会有所不同,重要的是uid >= 1000
)。
如果找到,只需删除检查部分。因此,如果您找到类似上面的行,请将其更改为:
auth requisite pam_succeed_if.so quiet_success
无需重新启动任何东西,su -
命令完成后即可立即生效。