上次更新后,即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
原文:https://www.cnblogs.com/nsfoxer/p/13595444.html