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

Posted 刘遄老师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS8中恢复根目录为默认权限相关的知识,希望对你有一定的参考价值。


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

本文中我们将故意在一个测试服务器上运行​​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中恢复根目录为默认权限_文件权限_02

带有chmod 777权限的SSH

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

下面再终端中ssh登录本机出现下面问题:

CentOS8中恢复根目录为默认权限_文件权限_03

下面使用X​​shell​​登录服务器,同样不能登录成功:

[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中恢复根目录为默认权限_文件权限_04

恢复权限

需要恢复权限,我们需要加载Centos8的系统镜像,开机启动光盘镜像:

在VMware Workstation中,加载光盘,并开机器用。开机按F2,进入Bios,切换到Boot选项卡。将CD-ROM Drive移动到Hard Drive上面。按F10保存并重启。

CentOS8中恢复根目录为默认权限_根目录_05

选择Troubleshooting,然后选择进入救援模式。

CentOS8中恢复根目录为默认权限_根目录_06

CentOS8中恢复根目录为默认权限_服务器_07

当进入下面界面时,选择1,直接进入shell界面。

CentOS8中恢复根目录为默认权限_文件权限_08

使用​​chroot​​命令将​​/mnt/sysroot​​切换为根目录:

sh-4.4#  chroot /mnt/sysroot

CentOS8中恢复根目录为默认权限_根目录_09

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

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

CentOS8中恢复根目录为默认权限_根目录_10

参数说明:

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

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

# exit
# reboot

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

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

# ls -l /

CentOS8中恢复根目录为默认权限_服务器_11

运行ssh登录,发现不能登录。使用​​netstat -tlunp​​发现ssh端口没有监听中,使用​​systemctl status sshd​​发现服务没有启动,启动sshd服务时发现不能启动,下面查找原因:

发现密钥文件的权限还是777,没有还原:

CentOS8中恢复根目录为默认权限_服务器_12

下面设置密钥文件权限:

# 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中恢复根目录为默认权限_服务器_13

下面再次启动sshd试一下:

# systemctl enable sshd --now
# netstat -tlunp

CentOS8中恢复根目录为默认权限_文件权限_14

可以看到启动成功了。ssh远程登录试一下,看到登录成功了。

CentOS8中恢复根目录为默认权限_根目录_15

总结

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

TRANSLATE with x

English

​​Arabic​​

​​Hebrew​​

​​Polish​​

​​Bulgarian​​

​​Hindi​​

​​Portuguese​​

​​Catalan​​

​​Hmong Daw​​

​​Romanian​​

​​Chinese Simplified​​

​​Hungarian​​

​​Russian​​

​​Chinese Traditional​​

​​Indonesian​​

​​Slovak​​

​​Czech​​

​​Italian​​

​​Slovenian​​

​​Danish​​

​​Japanese​​

​​Spanish​​

​​Dutch​​

​​Klingon​​

​​Swedish​​

​​English​​

​​Korean​​

​​Thai​​

​​Estonian​​

​​Latvian​​

​​Turkish​​

​​Finnish​​

​​Lithuanian​​

​​Ukrainian​​

​​French​​

​​Malay​​

​​Urdu​​

​​German​​

​​Maltese​​

​​Vietnamese​​

​​Greek​​

​​Norwegian​​

​​Welsh​​

​​Haitian Creole​​

​​Persian​​




TRANSLATE with

COPY THE URL BELOW


Back

EMBED THE SNIPPET BELOW IN YOUR SITE


Enable collaborative features and customize widget: ​​Bing Webmaster Portal​

Back




以上是关于CentOS8中恢复根目录为默认权限的主要内容,如果未能解决你的问题,请参考以下文章

centos8内核文件和grub文件丢失或者损坏恢复

centos8 xxxis not in the sudoers file.

java中public和缺省这两个访问权限的根本区别,举例子

centos8 - 搭建svn服务

Linux——修改目录与文件权限命令chmod

centos8设置httpd只允许https访问