manjaro_pam修复记录.md
pam.d修复记录
原因
上次更新后,即stable 2020.08.28
更新,重启无法登录。进入单用户模式后,查看日志,找到/etc/pam.d/system-login
原因。直接将system-login.pacnew
覆盖,sync
成功打开。本来已经可以正常使用,自己作死删掉/etc/pam.d/
文件夹,然后凉凉。
修复
-
进入单用户模式;由于
pam.d
文件丢失,导致所有认证无法使用,没有root权限,无法进行任何高权限操作。两种方法进入:(并不清楚原因)添加内核启动参数
init=/bin/sh
systemd.unit=rescue.target
-
查看日志
jourctl -rb -1
-
重装
pam
&&pambase
pacman -S pambase
pacman
提示/etc/pam.d/[other | system-auth | system-login | system-local-login | system-remote-login | system-services]
丢失。也就是pacman
补全了这几个丢失的文件pacman -S pam
pacman
可能会提示file exists in filesystem"(conflicting files)!
执行
pacman -S pam >& 1.txt
,提取出1.txt
中pacman
提示的已存在的文件行rm $(cut -d ' ' -f 2 1.txt)
删除所有exists
文件再次执行
pacman -S pam
就ok -
重装其他
pam.d
组件百度查找
pam.d/
文件夹下可能存在的配置文件找出
/etc/pam.d/[shadow | su | sudo | sshd]
(可能还有其他的)pacman -Fy # 同步文件数据库(需要联网,昨天才同步的) pacman -F shadow # 查询包含某个文件的包名,这里是包含shadow文件的 core/filesystem 2020.05-1 [已安装] etc/shadow usr/share/factory/etc/shadow core/shadow 4.8.1-3 [已安装] etc/pam.d/shadow # 很明显,pam.d/shadow属于shadow文件,重新安装shadow pacman -S shadow # 就补全了/etc/pam.d/shadow文件 # 同理,安装重新安装util-linux,sudo,openssh
-
执行
sync
保存磁盘 -
ctrl
+alt
+del
重启,一切OK
补充
pacman -Syu
升级系统时,是有提醒的。pacman
不会覆盖掉原先不同的配置文件,将新的配置文件添加pacnew
后缀。因为没有看提示,导致这次问题。所以每次升级,应该注意提醒。