“chmod -R 777 /”几秒钟 - 现在怎么办?

“chmod -R 777 /”几秒钟 - 现在怎么办?

在 Centos 6.5 上我不小心输入了

chmod -R 777 /

哎呀。我很快就按 CTRL + C 退出了它,但在此之前它已经开始工作了几秒钟。

后果?嗯,已经

su root

无法正常工作(尽管可以通过 SSH 以 root 身份登录)。我不确定还有什么可能受到影响。

有什么想法我可以继续吗?只需从备份重新安装,还是我可以采取一些巧妙的措施?

非常感谢。


编辑-我真正希望的是一些 bash 魔法。

  • 查找服务器上过去一小时内设置为 777 的文件
  • 将它们设置为标准 Centos 6.5 安装应具有的权限值

答案1

您不仅更改了文件的权限,还可能更改了目录和设备节点。(根据 chmod 手册页,chmod 永远不会更改符号链接权限,因此至少这些是安全的。)

在 CentOS 6.x 上,可以使用以下命令找到安装了特定文件的软件包

$ rpm -q -f /bin/ls
coreutils-8.4-19.el6.x86_64

然后使用以下方法查找原始文件模式

$ rpm -q -l -v coreutils | grep /bin/ls
-rwxr-xr-x    1 root    root       109208 Jun 22  2012 /bin/ls

然后使用findchmod命令编写脚本,但这并不能解决所有问题,实际上可能会使情况变得更糟。除非绝对必要,否则我会避免这样做。

正如其他人所说的那样,如果不恢复备份或重新安装,就无法完全修复系统。

答案2

如果您需要保留该系统,我建议:

  1. 查找受影响的文件。(我的 chmod 变体进入目录并更改所有文件,然后按字母顺序递归进入目录。)测试您的 chmod 执行的操作 -> 这使您能够检查受影响文件的确切列表 - 希望 chmod 没有到达您的数据(/home/srv)。

  2. 将所有受影响的文件设置为 r--r--r--,将所有看起来可执行的文件设置为 r-xr-xr-x,将所有目录设置为 r-xr-xr-x,将所有 /dev/ 节点设置为您选择的另一个正在运行的 Linux 系统。(这需要大量工作!)(备注:GNU/Linux 系统在只读模式下运行得很好,但可能有些文件必须是可写的 - 如果从现在起服务器不再启动:运气不好)(确保日志文件是可写的。)

  3. 重新安装所有软件包(确保配置文件将被保留)

  4. 但是,系统并不相同,可能存在严重的安全、性能和功能问题。

chmod 递归的提示:

user:/tmp/chmod$ chmod -v -R 777 .
Modus von „.“ als 0777 (rwxrwxrwx) erhalten
Modus von „./a“ als 0777 (rwxrwxrwx) erhalten
Modus von „./a/1“ als 0777 (rwxrwxrwx) erhalten
Modus von „./a/2“ als 0777 (rwxrwxrwx) erhalten
Modus von „./a/1a“ von 0755 (rwxr-xr-x) in 0777 (rwxrwxrwx) geändert
Modus von „./a/1a/g“ von 0644 (rw-r--r--) in 0777 (rwxrwxrwx) geändert
Modus von „./a/2b“ von 0755 (rwxr-xr-x) in 0777 (rwxrwxrwx) geändert
Modus von „./a/2b/h“ von 0644 (rw-r--r--) in 0777 (rwxrwxrwx) geändert
Modus von „./b“ als 0777 (rwxrwxrwx) erhalten
Modus von „./b/1“ als 0777 (rwxrwxrwx) erhalten
Modus von „./b/2“ als 0777 (rwxrwxrwx) erhalten
user:/tmp/chmod$ 

答案3

这也许能解决你的一些问题:

find . -type f -perm 777 -exec chmod 644 {} \;
find . -type D -perm 777 -exec chmod 755 {} \;

对于某些文件/目录

相关内容