阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Centos8中恢复根目录为默认权限

37次阅读
没有评论

共计 2204 个字符,预计需要花费 6 分钟才能阅读完成。

导读 本文中介绍如何从意外运行 # chmod -R 777 / 命令, 在 Centos8 操作系统上恢复默认权限。

本文中我们将故意在一个测试服务器上运行 chmod 777 命令,并尝试通过运行两个命令进行恢复。就是如下两条命令:

# rpm --setugids -a
# rpm --setperms -a

当再测试机上面执行下面命令之后,所有文件权限都会变成 777。

[root@localhost ~]# chmod -R 777 /

列出根目录下面的内容:

[root@localhost ~]# ls -al /

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 中恢复根目录为默认权限

带有 chmod 777 权限的 SSH

下面尝试通过 SSH 远程登录服务器。由于主机密钥文件权限都变成了 777 了,所以登录会被拒绝。

下面再终端中 ssh 登录本机出现下面问题:
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 的系统镜像,开机启动光盘镜像:

在 VMware Workstation 中,加载光盘,并开机器用。开机按 F2,进入 BIOS,切换到 Boot 选项卡。将 CD-ROM Drive 移动到 Hard Drive 上面。按 F10 保存并重启。
Centos8 中恢复根目录为默认权限
选择 Troubleshooting,然后选择进入救援模式。
Centos8 中恢复根目录为默认权限
Centos8 中恢复根目录为默认权限
当进入下面界面时,选择 1,直接进入 shell 界面。
Centos8 中恢复根目录为默认权限
使用 chroot 命令将 /mnt/sysroot 切换为根目录:

sh-4.4#  chroot /mnt/sysroot

Centos8 中恢复根目录为默认权限
使用以下两个命令运行,以恢复所有文件,目录和配置的权限。运行此命令时,它将引发权限被拒绝错误,并且无法访问错误。只是忽略错误。

# rpm --setugids -a
# rpm --setperms -a

Centos8 中恢复根目录为默认权限
参数说明:

  • --setugids – 设置 RPM 包文件的用户 / 组所有权。
  • --setperms – 设置 RPM 包文件的权限。
  • -a – 适用于所有已安装的 RPM 软件包。

完成操作之后,退出,并重启:

# exit
# reboot
查看权限、SSH 连接服务器测试

下面登录系统之后,看一下根目录的权限是否恢复正常:

# ls -l /

Centos8 中恢复根目录为默认权限
运行 ssh 登录,发现不能登录。使用 netstat -tlunp 发现 ssh 端口没有监听中,使用 systemctl status sshd 发现服务没有启动,启动 sshd 服务时发现不能启动,下面查找原因:

发现密钥文件的权限还是 777,没有还原:
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 中恢复根目录为默认权限
下面再次启动 sshd 试一下:

# systemctl enable sshd --now
# netstat -tlunp

Centos8 中恢复根目录为默认权限
可以看到启动成功了。ssh 远程登录试一下,看到登录成功了。
Centos8 中恢复根目录为默认权限

总结

就这样,我们已经成功还原了已安装的 RPM 软件包的权限并恢复了服务器。切勿在任何文件系统或配置上使用 chmod 777。

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计2204字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中