上次更新后,即stable 2020.08.28更新,重启无法登录。进入单用户模式后,查看日志,找到/etc/pam.d/system-login原因。直接将system-login.pacnew覆盖,sync成功打开。本来已经可以正常使用,自己作死删掉/etc/pam.d/文件夹,然后凉凉。
进入单用户模式;由于pam.d文件丢失,导致所有认证无法使用,没有root权限,无法进行任何高权限操作。
两种方法进入:(并不清楚原因)添加内核启动参数
init=/bin/shsystemd.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