Loading

manjaro_pam修复记录.md

pam.d修复记录

原因

上次更新后,即stable 2020.08.28更新,重启无法登录。进入单用户模式后,查看日志,找到/etc/pam.d/system-login原因。直接将system-login.pacnew覆盖,sync成功打开。本来已经可以正常使用,自己作死删掉/etc/pam.d/文件夹,然后凉凉。

修复

  1. 进入单用户模式;由于pam.d文件丢失,导致所有认证无法使用,没有root权限,无法进行任何高权限操作。

    两种方法进入:(并不清楚原因)添加内核启动参数

    • init=/bin/sh
    • systemd.unit=rescue.target
  2. 查看日志 jourctl -rb -1

  3. 重装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.txtpacman提示的已存在的文件行

    rm $(cut -d ' ' -f 2 1.txt)删除所有exists文件

    再次执行pacman -S pam就ok

  4. 重装其他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
    
  5. 执行sync保存磁盘

  6. ctrl+alt+del重启,一切OK

补充

pacman -Syu升级系统时,是有提醒的。pacman不会覆盖掉原先不同的配置文件,将新的配置文件添加pacnew后缀。因为没有看提示,导致这次问题。所以每次升级,应该注意提醒。

posted @ 2022-05-28 17:40  nsfoxer  阅读(120)  评论(0编辑  收藏  举报