共计 2729 个字符,预计需要花费 7 分钟才能阅读完成。
本文中介绍如何从意外运行# chmod -R 777 / 命令, 在 Centos8 操作系统上复原默认权限。
本文中咱们将成心在一个测试服务器上运行 chmod 777 命令,并尝试通过运行两个命令进行复原。就是如下两条命令:
rpm –setugids -a
rpm –setperms -a
当再测试机下面执行上面命令之后,所有文件权限都会变成 777。
[root@localhost ~]# chmod -R 777 /
列出根目录上面的内容:
[root@localhost ~]# ls -al /
Centos8 中复原根目录为默认权限 Centos8 中复原根目录为默认权限
上面是 SSH 相干的重要文件,须要有正确的权限和所有权。然而,因为运行 chmod 777,以下所有文件都具备谬误的权限。
[root@localhost ~]# ll /etc/ssh/
total 588
-rwxrwxrwx. 1 root root 563386 May 11 2019 moduli
-rwxrwxrwx. 1 root root 1727 May 11 2019 ssh_config
drwxrwxrwx. 2 root root 28 Dec 29 2019 ssh_config.d
-rwxrwxrwx. 1 root root 4444 May 11 2019 sshd_config
-rwxrwxrwx. 1 root ssh_keys 480 Dec 29 2019 ssh_host_ecdsa_key
-rwxrwxrwx. 1 root root 162 Dec 29 2019 ssh_host_ecdsa_key.pub
-rwxrwxrwx. 1 root ssh_keys 387 Dec 29 2019 ssh_host_ed25519_key
-rwxrwxrwx. 1 root root 82 Dec 29 2019 ssh_host_ed25519_key.pub
-rwxrwxrwx. 1 root ssh_keys 1799 Dec 29 2019 ssh_host_rsa_key
-rwxrwxrwx. 1 root root 382 Dec 29 2019 ssh_host_rsa_key.pub
Centos8 中复原根目录为默认权限 Centos8 中复原根目录为默认权限
带有 chmod 777 权限的 SSH
上面尝试通过 SSH 近程登录服务器。因为主机密钥文件权限都变成了 777 了,所以登录会被回绝。
上面再终端中 ssh 登录本机呈现上面问题:
Centos8 中复原根目录为默认权限 Centos8 中复原根目录为默认权限
上面应用 Xshell 登录服务器,同样不能登录胜利:
[C:\~]$ ssh root@192.168.43.131
Connecting to 192.168.43.131:22…
Connection established.
To escape to local shell, press ‘Ctrl+Alt+]’.
Connection closing…Socket close.
Connection closed by foreign host.
Disconnected from remote host(192.168.43.131:22) at 10:28:06.
Type `help’ to learn how to use Xshell prompt.
Centos8 中复原根目录为默认权限 Centos8 中复原根目录为默认权限
复原权限
须要复原权限,咱们须要加载 Centos8 的零碎镜像,开机启动光盘镜像:
在 VMware Workstation 中,加载光盘,并开机器用。开机按 F2,进入 BIOS,切换到 Boot 选项卡。将 CD-ROM Drive 挪动到 Hard Drive 下面。按 F10 保留并重启。
Centos8 中复原根目录为默认权限 Centos8 中复原根目录为默认权限
抉择 Troubleshooting,而后抉择进入救济模式。
Centos8 中复原根目录为默认权限 Centos8 中复原根目录为默认权限
Centos8 中复原根目录为默认权限 Centos8 中复原根目录为默认权限
当进入上面界面时,抉择 1,间接进入 shell 界面。
Centos8 中复原根目录为默认权限 Centos8 中复原根目录为默认权限
应用 chroot 命令将 /mnt/sysroot 切换为根目录:
sh-4.4# chroot /mnt/sysroot
Centos8 中复原根目录为默认权限 Centos8 中复原根目录为默认权限
应用以下两个命令运行,以复原所有文件,目录和配置的权限。运行此命令时,它将引发权限被回绝谬误,并且无法访问谬误。只是疏忽谬误。
rpm –setugids -a
rpm –setperms -a
Centos8 中复原根目录为默认权限 Centos8 中复原根目录为默认权限
参数阐明:
–setugids – 设置 RPM 包文件的用户 / 组所有权。
–setperms – 设置 RPM 包文件的权限。
-a – 实用于所有已装置的 RPM 软件包。
实现操作之后,退出,并重启:
exit
reboot
查看权限、SSH 连贯服务器测试
上面登录零碎之后,看一下根目录的权限是否恢复正常:
ls -l /
Centos8 中复原根目录为默认权限 Centos8 中复原根目录为默认权限
运行 ssh 登录,发现不能登录。应用 netstat -tlunp 发现 ssh 端口没有监听中,应用 systemctl status sshd 发现服务没有启动,启动 sshd 服务时发现不能启动,上面查找起因:
发现密钥文件的权限还是 777,没有还原:
Centos8 中复原根目录为默认权限 Centos8 中复原根目录为默认权限
上面设置密钥文件权限:
chmod 644 /etc/ssh/ssh_config
chmod 600 /etc/ssh/sshd_config
chmod 640 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key
chmod 644 /etc/ssh/ssh_host_rsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ed25519_key.pub
Centos8 中复原根目录为默认权限 Centos8 中复原根目录为默认权限
上面再次启动 sshd 试一下:
systemctl enable sshd –now
netstat -tlunp
Centos8 中复原根目录为默认权限 Centos8 中复原根目录为默认权限
能够看到启动胜利了。ssh 近程登录试一下,看到登录胜利了。
Centos8 中复原根目录为默认权限 Centos8 中复原根目录为默认权限
总结
就这样,咱们曾经胜利还原了已装置的 RPM 软件包的权限并复原了服务器。切勿在任何文件系统或配置上应用 chmod 777。