意外 chmod 后修复服务器的权限

意外 chmod 后修复服务器的权限

在尝试调试邮件服务器时,我输入了:

chmod -R 777 /

代替:

chmod -R 777 .

更糟糕的是,由于我忘记更改了用于登录修复问题的脚本,所以我以 root 身份执行了所有操作。我没有备份大部分系统(我知道这是一个糟糕的选择)。

与问题“从 chmod -R -777 / 中恢复”和“‘chmod -R 777 /’ 之后该做什么?”不同,我仍然以 root 身份登录,并且整个系统并未更改,因此我确实可以控制系统。我还在一秒钟内退出命令以将损害降到最低。从那时起,我已经将服务器与互联网物理断开。

我相信如果脚本根据来自包管理器的数据恢复文件系统的权限,它就可以修复这个问题,但我不知道该怎么做。如果这不可能,我该如何保存来自服务器的数据以重新安装操作系统?

我知道丢失文件的潜在风险,但尽管如此,我还是希望通过恢复来重新安装。

这是当前的输出ls -la /

drwxrwxrwx  22 root root  4096 Sep  7  2016 .
drwxrwxrwx  22 root root  4096 Sep  7  2016 ..
drwxr-xr-x   2 root root  4096 May 18 07:55 bin
drwxr-xr-x   3 root root  4096 Sep 21 07:53 boot
drwxr-xr-x  19 root root  3180 Sep 11 20:54 dev
drwxrwxrwx  92 root root  4096 Aug 23 07:50 etc
drwxr-xr-x   4 root root  4096 May 23  2016 home
lrwxrwxrwx   1 root root    31 Feb 24  2016 initrd.img -> /boot/initrd.img-3.16.0-4-amd64
drwxrwxrwx  18 root root  4096 Feb 24  2016 lib
drwxr-xr-x   2 root root  4096 Jun 20 07:00 lib64
drwx------   2 root root 16384 May 19  2016 lost+found
drwxrwxrwx   2 root root  4096 May  5  2015 media
drwxr-xr-x   2 root root  4096 May  5  2015 mnt
drwxr-xr-x   3 root root  4096 May 28  2016 opt
dr-xr-xr-x 148 root root     0 Sep  3 21:55 proc
drwxrwxrwx  10 root root  4096 Aug 19 17:58 root
drwxr-xr-x  22 root root   800 Sep 21 17:09 run
drwxrwxrwx   3 root root  4096 Jun 20 07:00 sbin
drwxr-xr-x   4 root root  4096 Sep 20 23:18 sftp
dr-xr-xr-x  13 root root     0 Sep  3 21:55 sys
drwxrwxrwx   8 root root  4096 Sep 21 17:17 tmp
drwxrwxrwx  11 root root  4096 Feb 24  2016 usr
drwxr-xr-x  14 root root  4096 Jun 25 06:21 var
lrwxrwxrwx   1 root root    27 Feb 24  2016 vmlinuz -> boot/vmlinuz-3.16.0-4-amd64

我惊慌失措地点击了 ubuntu 论坛,而不是 debian... 我知道这不是修复邮件服务器的方法。这是一个粗略的修复,看看到底是什么坏了

我现在已将这篇文章转发到正确的论坛

答案1

修复权限错误

如何恢复根目录权限为默认?

规则 1:如果您不熟悉命令行,请不要以 root 身份运行任何命令。

chmod -R 777 /以 root身份运行将会破坏你的系统。

rm -rf /以 root身份运行会导致灾难!

如果你以 root 身份运行chmod -R 777 /,请按照以下步骤恢复:

步骤1:

复制以下脚本,粘贴到控制台上以生成 fixpermission 脚本

echo '
chmod -R 755 /bin /boot /dev /etc/ /home /lib /lib64 \
/media /mnt /opt /run /sbin /srv /usr /var

chmod -R 777 /initrd.img /vmlinuz
chmod -R 1777 /tmp
chmod -R 555 /sys
chmod -R 555 /proc
chmod -R 700 /root

' > fixpermission

chmod +x fixpermission

./fixpermission

上述操作将创建一个名为 fixpermission 的脚本,./fixpermission如果尚未调用则运行它。

第2步:

运行stat -c '%A %a %n' /*以显示您的正确目录及其已恢复的权限。

示例:您的目录权限结构应类似于以下内容:

root@plab:~# stat -c '%A %a %n' /*
drwxr-xr-x 755 /bin
drwxr-xr-x 755 /boot
drwxr-xr-x 755 /dev
drwxr-xr-x 755 /etc
drwxr-xr-x 755 /home
lrwxrwxrwx 777 /initrd.img
lrwxrwxrwx 777 /initrd.img.old
drwxr-xr-x 755 /lib
drwxr-xr-x 755 /lib64
drwx------ 700 /lost+found
drwxr-xr-x 755 /media
drwxr-xr-x 755 /mnt
drwxr-xr-x 755 /opt
dr-xr-xr-x 555 /proc
drwx------ 700 /root
drwxr-xr-x 755 /run
drwxr-xr-x 755 /sbin
drwxr-xr-x 755 /srv
dr-xr-xr-x 555 /sys
drwxrwxrwt 1777 /tmp
drwxr-xr-x 755 /usr
drwxr-xr-x 755 /var
lrwxrwxrwx 777 /vmlinuz
lrwxrwxrwx 777 /vmlinuz.old

步骤3:

重新启动系统!

希望这可以帮助。

相关内容