chmod -R 644 / 后系统损坏

chmod -R 644 / 后系统损坏

我使用 debian jessie,我犯了其中一个严重错误,并因输入错误的命令而破坏了我的系统,并且在这种情况下会出现更严重的错误。

尝试修复一些权限时,我错误地在根文件夹上递归地使用了 chmod:

# chmod -R 0644 /

然后我立即意识到我赶紧采取措施来阻止它,但系统被冻结了,更糟糕的错误是硬关闭系统电源。

现在我认为我遇到了一些用户管理器问题,并且在启动时出现一些“无法启动服务”消息后,我没有 Gnome 用户登录,也无法在控制台中登录。这是闪烁几次然后停留在屏幕上的内容:

[ ok ] Created slice user-113.slice
       Starting user manager for UID 113...  
[ ok ] Started user manager for UID 113  
[ ok ] Stopped user manager for UID 113  
[ ok ] Removed slice user-113.slice 

答案1

您删除了文件的执行权限。此外,您还授予其他人对某些文件的读取权限。两者结合起来不允许您登录。我最好的建议是用一些 Live CD 备份你的文件并重新安装

答案2

好消息是您的所有数据仍然存在。好坏参半的消息是,您的系统安装可能可以恢复,也可能无法恢复——这取决于chmod停止的位置。

您将需要启动救援系统来修复它。从救援系统中,将损坏的安装安装到某个地方,例如/mnt。发出以下命令:

chmod 755 /mnt
find /mnt -type d -perm 644 >/mnt/bad-permissions
find /mnt -type d -exec chmod 755 {} +

第一个find命令将具有错误权限的目录记录保存到文件中。目的是查看哪里修改了权限。第二个find命令将所有目录更改为可公开访问。

您现在拥有一个系统,其中列出的所有目录/mnt/bad-permissions以及这些目录中的所有文件都是世界可读的。此外,这些目录中的文件不可执行。根据受影响的文件,这可能很容易修复,也可能不容易修复。看错误设置 chmod / 777。有问题吗?对于您可以尝试使系统正常运行的内容,您应该添加

chmod a+x /bin/* /sbin/* /usr/bin/* /usr/sbin/* /lib*/ld-*

但即使您设法让某些功能正常工作,某些权限仍然错误的风险很高,因此我建议重新安装新系统,然后恢复数据。如何将已安装的软件包选择从一个 Debian 系统复制到另一个 Debian 系统?(Debian Wheezy)应该有帮助。

相关内容