问题描述
在变更文件、目录权限时,误操作执行了“chmod -R 777 /”,致使整个操作系统的权限全部变为“777”,影响相关业务。
解决方案
第一步
先恢复相关账号以及ssh登录的权限,这样我们可以通过VNC以及远程登录来解决后续问题。
修改passwd、group、shadow、ssh相关文件权限:
cd /etc
chmod 644 passwd group shadow
chmod 400 gshadow
cd ssh
chmod 600 moduli sshd_config ssh_host_dsa_key ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_key
chmod 644 ssh_config ssh_host_dsa_key.pub ssh_host_ecdsa_key.pub ssh_host_ed25519_key.pub ssh_host_rsa_key.pub
chmod 711 /var/empty/sshd
systemctl restart sshd
尝试ssh登录。若普通用户无法切换成root用户,则执行以下命令:
chmod u+s `which su`
第二步
通过rpm命令来恢复rpm包的文件的所属者和权限,运行以下命令重置所有已安装软件包中文件的权限:
rpm --setugids PACKAGE_NAME - sets user/group ownership of files in the given package.
rpm --setperms PACKAGE_NAME - sets permissions of files in the given package.
执行参数 -a (all)修复已安装文件和目录的相关权限:
rpm -a --setugids
rpm -a --setperms
特别注意:上述命令的顺序非常重要, --setugids
命令中的组和用户关联设置操作删除了 SUID 和 SGID 位。如果不通过后续的 --setperms
操作重新应用它们,依赖这些位的实际应用程序将不再起作用。
如果您有其他问题,欢迎您联系火山引擎技术支持服务