BCLinux 添加用户后无法su切换用户
今天在部署服务器的过程中,发现其中1台服务器使用useradd添加用户后,su无法切换用户,提示su: cannot open session: Module is unknown,以下是解决问题的过程及可能的一些思路,仅供参考。
问题
[root@localhost ~]# useradd jiang #新增用户
[root@localhost ~]# more /etc/shadow #查看系统用户
root:$6$zfQCTFBxqQEK01Pz$KBAZe.aSP1XqywopsWFKfZ0NFGiU59RPYGmOLZ0gBZybRB/.ef2a7nj6WveersfQPrRHW/yMMwK58fBv9sUNN/::0:99999:7:::
bin:*:18654:0:99999:7:::
daemon:*:18654:0:99999:7:::
adm:*:18654:0:99999:7:::
lp:*:18654:0:99999:7:::
sync:*:18654:0:99999:7:::
shutdown:*:18654:0:99999:7:::
halt:*:18654:0:99999:7:::
mail:*:18654:0:99999:7:::
operator:*:18654:0:99999:7:::
games:*:18654:0:99999:7:::
ftp:*:18654:0:99999:7:::
nobody:*:18654:0:99999:7:::
dbus:!!:20097::::::
systemd-coredump:!!:20097::::::
systemd-resolve:!!:20097::::::
tss:!!:20097::::::
polkitd:!!:20097::::::
libstoragemgmt:!!:20097::::::
apache:!!:20097::::::
unbound:!!:20097::::::
clevis:!!:20097::::::
setroubleshoot:!!:20097::::::
cockpit-ws:!!:20097::::::
cockpit-wsinstance:!!:20097::::::
sssd:!!:20097::::::
sshd:!!:20097::::::
chrony:!!:20097::::::
rngd:!!:20097::::::
tcpdump:!!:20097::::::
postgres:!!:20103:0:99999:7:::
tmn:!!:20103:0:99999:7:::
jiang:!!:20103:0:99999:7::: #这里是我新建的用户
[root@localhost ~]# su jiang #使用su切换用户,以下为错误提示
su: cannot open session: Module is unknown
日志记录
[root@localhost ~]# more /var/log/secure
...
Jan 15 02:51:32 localhost su[16737]: PAM adding faulty module: /usr/lib64/security/pam_unix.so
Jan 15 02:51:32 localhost su[16737]: pam_systemd(su:session): Cannot create session: Already running in a session or user slice
Jan 15 02:57:28 localhost su[16762]: PAM unable to dlopen(/usr/lib64/security/pam_unix.so): /lib64/libk5crypto.so.3: undefined symbol: EVP_KDF_ctrl, vers
ion OPENSSL_1_1_1b
...
问题处理
这里面因为提示了有一个用户界面已经在运行了,所以我尝试重启了下服务器,重启后发现问题解决,但是我重新看了下服务器的日志,发现su[16737]这个问题没有解决,反而是su[16762]不再报错了,具体的原因看日志是因为PAM的组件不兼容导致的,当然大家可以尝试重启服务器,如果还是不能解决问题的话,这里提供以下解决的思路。
日志中显示
PAM unable to dlopen(/usr/lib64/security/pam_unix.so): /lib64/libk5crypto.so.3: undefined symbol: EVP_KDF_ctrl, vers
ion OPENSSL_1_1_1b
猜测是libk5crypto.so.3的原因,可以重新安装,
升级所有组件服务
yum update -y
执行完更新后,可尝试su usrname,看看是不是可以正常切换用户,如果还是还是无法切换,尝试以下操作
警告:直接卸载PAM可能会导致您无法以常规方式登录系统。如果可能的话,请在执行此操作之前准备好救援模式或Live CD/USB
重新安装PAM
yum remove pam -y #会移除许多依赖PAM的包,谨慎使用
yum install pam -y
THE END