本文将聚焦于一个极具破坏性的操作场景:用户使用root用户在操作系统下执行了chmod -R 777 /命令,导致所有用户均无法登录操作系统。我们将深入剖析这一问题的根源,并提供切实可行的解决方案。
前置条件
- 操作系统:Red Hat Enterprise Linux release 9.5 (Plow)
- 破坏性操作:chmod -R 777 /
解决方案
1.进入救援模式
- 重启操作系统,在GRUB启动菜单按e键编辑内核参数。
- 在linux行末尾添加init=/bin/bash(或 systemd.unit=rescue.target)。
- 按Ctrl + X启动到单用户模式。
2.重新挂载文件系统
bash-5.1# mount -o remount,rw / bash-5.1# mount -a
3.关键权限修复
修复基础权限:
bash-5.1# chmod 755 / /usr /etc /bin /sbin /lib /lib64 bash-5.1# chmod 644 /etc/passwd /etc/group bash-5.1# chmod 600 /etc/shadow /etc/gshadow
修复SSH服务:
bash-5.1# chmod 700 /etc/ssh bash-5.1# chmod 600 /etc/ssh/ssh_host_*_key bash-5.1# chmod 644 /etc/ssh/ssh_host_*.pub
修复PAM认证:
bash-5.1# chmod 644 /etc/pam.d/*
4.通过rpm包管理器修复权限
把系统中所有RPM包安装的文件的用户(User)和组(Group)设置为打包时记录的原始值:
bash-5.1# rpm -a --setugids
将系统里所有RPM包安装文件的权限(如读写执行权限)恢复成打包时的初始值:
bash-5.1# rpm -a --setperms
5.进一步修复系统目录权限
bash-5.1# chmod 1777 /tmp /var/tmp bash-5.1# chmod 755 /var/log bash-5.1# chmod 700 /root bash-5.1# chmod 4755 /usr/bin/sudo bash-5.1# chmod 4755 /usr/bin/pkexec
6.重启验证
bash-5.1# sync bash-5.1# exec /sbin/init 6
总结扩展
本文提供了一套完整的修复流程,涵盖从进入救援模式、重新挂载文件系统、关键权限修复、使用rpm包管理器恢复权限,到修复系统目录权限及重启验证的每一步操作,旨在帮助管理员迅速恢复系统正常运行。
技术评审
- 评审专家:保哥 | 某保险公司运维开发工程师
- 验证结论:验证通过
修订记录
- 2025-06-05 v1.0 初版发布
原创文章,作者:运维侠,如若转载,请注明出处:https://www.yunweixia.com/solutions/chmod-r-777-slash-caused-system-crash-rhel9-5-full-repair-guide.html