我用的是ubuntu 12.04(32位)。今天,我错误地执行了一个命令:
不要执行这个命令:
sudo find / -type d -exec chmod -Rf a-wr {} \;
Run Code Online (Sandbox Code Playgroud)
我无法登录系统;系统只有一个用户,禁用root。谁知道如何解决?
取消系统中所有目录的读写权限显然会破坏每个正态分布。这是无稽之谈。
编辑 1
可以通过启动另一个 Linux(从 CD/DVD/USB 记忆棒)并在所有受影响的卷上正确设置访问权限来修复系统。恢复原始状态可能很复杂,让它再次工作更容易。如果只有一个用户并且没有守护进程向网络提供服务,那么就不会有问题或安全风险。
mount -t auto /dev/whatever /mnt/targetvolume
find /mnt/targetvolume -type d -exec chmod 755 {} \;
find /mnt/targetvolume -type f -exec chmod 644 {} \;
chmod -R a+x /mnt/targetvolume/bin /mnt/targetvolume/sbin \
/mnt/targetvolume/lib /mnt/targetvolume/lib64 /mnt/targetvolume/sbin \
/mnt/targetvolume/usr/ /mnt/targetvolume/usr/bin \
/mnt/targetvolume/usr/lib /mnt/targetvolume/usr/lib64 \
/mnt/targetvolume/usr/sbin
Run Code Online (Sandbox Code Playgroud)
在 /etc 中恢复正确的权限很重要。我的建议是询问具有相同发行版的人(他最多应该安装您已安装的所有软件)为您提供以下内容:
# on a working system
getfacl --recursive /etc > acl-etc.txt
# on your system
setfacl --restore=acl-etc.txt /etc
# or from the rescue system
setfacl --restore=acl-etc.txt /mnt/targetvolume/etc
Run Code Online (Sandbox Code Playgroud)
这可以通过以下方式进一步改进
| 归档时间: |
|
| 查看次数: |
5948 次 |
| 最近记录: |