[Terminal] SUDO 任何命令都提示 PAM 认证出错:模块未知
Tofloor
default avatar
party_good
deepin
2021-07-18 08:53
Author

因系统控制中心无法打开,所以使用网上的帖子命令进行操作

打开终端后,使用sudo apt remove deepin-recovery-plugin

提示sudo: PAM 认证出错:模块未知

电脑deepin 20和win10双系统,平时主用deepin安装的edge浏览器看看视频,系统有升级时就进行升级,无其他额外操作

现在终端无法使用乐,求救

Reply Favorite View the author
All Replies
sevenfal
deepin
2021-07-18 23:32
#1

截图看看

Reply View the author
party_good
deepin
2021-07-19 18:48
#2

Reply View the author
l6835238
deepin
2021-10-10 16:01
#3
party_good

您好,请问您的问题解决了吗,我也是双系统,出错为sudo:认证出错,严重错误,立即终止

 

Reply View the author
yanjingtu
deepin
2021-10-20 22:39
#4

请问解决了吗?我这边是刚升级到20.2.4社区版,中间好像是提示PAM模块有变化问是否还原,我就选了是,升级之后就这样了

Reply View the author
yanjingtu
deepin
2021-10-21 10:57
#5

试着分析一下问题吧:

pam模块是一个基础的模块,我的理解就是管控本机一些权限的,按照通用的规则进行管控。

具体的规则配置文件在/etc/pam.d/目录下,进去看了一下sudo那个,里面引用三个common的规则,提取出common文件中具体依赖到的so动态库文件:

cat /etc/pam.d/{common-auth,common-account,common-session-noninteractive} | grep -E '^[^#]' | sed -r 's/^.*(pam.*so).*$/\1/' | sort | uniq

结果显示涉及到以下4个动态库:

pam_deepin_authentication.so

pam_deny.so

pam_permit.so

pam_unix.so

这几个文件不太了解在什么目录下,由于硬盘比较大,用find命令只搜一下常见的/usr目录吧:

find /usr -name "pam_*.so"

搜到不少,绝大多数都在/usr/lib/x86_64-linux-gnu/security/目录,对了一下上面的四个,缺少其中一个:

/usr/lib/x86_64-linux-gnu/security/pam_deepin_authentication.so

从其他deepin系统用dpkg命令查找一下:

dpkg -S /usr/lib/x86_64-linux-gnu/security/pam_deepin_authentication.so

结果很奇怪,提示这个文件不在任何包里面。。。

那也不管了,从另外这个系统里面把这个so文件拷贝过来试试,结果需要root用户权限才能放进来,那就进单用户模式吧。先写到这里,重启电脑试一下。

Reply View the author
yanjingtu
deepin
2021-10-21 11:34
#6

大家恭喜我吧,按照以上步骤,复活了~

本来是想通过单用户模式进入终端将从其他机器拿到的so动态库加到系统中,结果deepin单用户启动过程中提示root用户locked,说让看一个命令的man手册(没来得及拍照留念,记不太清)。

还好还有双系统,进CentOS7.6挂载deepin根分区sudo将so文件拷贝到/usr/lib/x86_64-linux-gnu/security/目录里并设置权限为0644,重启进入deepin,就都正常了。

大家如果有遇到类似情况的也可以这么排查试试,如果没有双系统的我记得grub自带的终端应该也可以执行一些简单的命令,说不定cp命令也可以。

一会我把pam_deepin_authentication.so放个网盘,需要的也可以从那里拿。注意系统版本最好一致:

Reply View the author
yanjingtu
deepin
2021-10-21 11:40
#7

上传到蓝奏云了:https://wwa.lanzoui.com/izbRQvl7kti

 

md5sum /usr/lib/x86_64-linux-gnu/security/pam_deepin_authentication.so

1aa22ae97bc130faf630d62574fadf4d  /usr/lib/x86_64-linux-gnu/security/pam_deepin_authentication.so

 

Reply View the author
nuaaqianjin
deepin
2022-06-01 02:58
#8
l6835238

您好,请问您的问题解决了吗,我也是双系统,出错为sudo:认证出错,严重错误,立即终止

 

模块丢失应该就是下边老哥说的,查找一下依赖的pam模块。

我的跟你的一样,出现严重错误,查找了一下/etc/sudoers文件,发现用户被移除了sudoer,所以在直接在/etc/sudoers的root设置下添加用户设置

image.png

然后完美解决了

Reply View the author