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

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

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

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

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

列出根目录下面的内容:

[root@localhost ~]# ls -al /


下面是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

带有chmod 777权限的SSH

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

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

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

[C:\~]$ ssh root@192.168.43.131Connecting 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的系统镜像,开机启动光盘镜像:

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

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


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

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

sh-4.4#  chroot /mnt/sysroot


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

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


参数说明:

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

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

# exit
# reboot

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

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

# ls -l /


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

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

下面设置密钥文件权限:

# 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


下面再次启动sshd试一下:

# systemctl enable sshd --now
# netstat -tlunp


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

总结

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

Centos8中恢复根目录为默认权限相关推荐

  1. ubuntu系统中新建文件的默认权限

    在ubuntu系统中,当我们使用touch 和 mkdir 新建文件和目录时,并没有指明要赋予它们的权限(在man的帮助手册中也没有找到相应选项).虽然后续我们可以使用chmod 修改文件的权限,但是 ...

  2. linux修改usb权限,在Linux中永久修改USB设备权限该怎么做?

    问题 当我尝试在 Linux 中运行 USB GPS 接收器时我遇到了下面来自 gpsd 的错误. 看上去 gpsd 没有权限访问 USB 设备(/dev/ttyUSB0). 我该如何永久修改它在Li ...

  3. 默认权限umask、文件系统权限、特殊权限

    第1章 权限相关错误 1.1 普通用户 ls /root/ /root  属于root 普通用户没有任何权限,所以无法查看 [oldboy@znix ~]$ ls /root/ ls: cannot ...

  4. 计算机打开页面恢复默认大小,win10怎样恢复Windows窗口默认的大小?

    正在阅读:win10怎样恢复Windows窗口默认的大小?win10怎样恢复Windows窗口默认的大小? 2018-04-10 15:56 出处:其他 作者:佚名 责任编辑:linshitang 现 ...

  5. Linux如何查询目录默认权限,如何设置UNIX/Linux中新创建目录或文件的默认权限

    在unix或者linux中,创建一个新文件或者目录时,这个文件或者目录都具有一个默认的权限,比如目录755,文件644,这些默认权限是由umask(权限掩码)来控制的,一般umask默认值为022,其 ...

  6. java 权限修饰符大小_Java中访问权限修饰符public protected private, 缺省默认权限的用法总结...

    1.访问权限符: (1)public: 对于成员来说:任何其他类都可以访问它们,不管在同一个包中还是在另外的包中. 对于类来说: 也是一样. (2)friendly: 对于成员老说:如果一个类的成员没 ...

  7. linux中设置默认权限的命令,Linux默认权限掩码

    Linux教程 Linux教程:http://www.fdlly.com/m/linux 文章目录 默认权限掩码 设置权限掩码 以文字的方式设置权限掩码 查看系统当前的权限掩码 默认权限掩码 当我们创 ...

  8. Linux 删除权限 umask,linux中的umask控制文件或目录的默认权限

    umask命令可以控制着创建文件或目录时指定给文件或目录的默认权限.它使用八进制表示法表示从文件模式属性中删除一个位掩码.使用不带任何参数的umask命令,查看当前掩码值.一般都是0002或0022. ...

  9. iOS 7状态栏在iPhone应用程序中恢复到iOS 6默认样式?

    本文翻译自:iOS 7 status bar back to iOS 6 default style in iPhone app? In iOS 7 the UIStatusBar has been ...

最新文章

  1. HTML5学习路线资料,HTML5前端面试的技术栈
  2. Linux 网卡相关操作
  3. An internal error occurred while showing an internal error.
  4. 详细了解BGP—边界网关协议
  5. Netty实现原理浅析
  6. Linux系统调用表:x86和x86_64
  7. 计算机科学讲座的策划书,计算机科学与工学院女生新生讲座策划书.doc
  8. 如何隐藏scroll-Y纵向滚动条,并不影响内容滚动的方法
  9. 对话框--popdialog总结
  10. 换个角度认识大数据(上)——何为元数据
  11. 工业机器人电气系统拆装实训平台
  12. SPSS Statistics 分位数回归 翻译文档
  13. AntD 的 Descriptions 组件实现“ 右对齐效果 ”
  14. 有翅膀的java游戏_翅膀只是为了拉风?在这几款游戏中,带上翅膀真的能飞
  15. Solidwork软件盗版
  16. pyscripter与python的关系_Codecademy Python和Pyscripter提供错误消息
  17. 2021年大庆高考成绩查询,2021年大庆高考状元是谁分数多少分,历年大庆高考状元名单...
  18. socket常用参数解释
  19. 学会重构与对比 ——码农鼻祖天才香农
  20. 双(三氟甲基磺酰基)酰亚胺钠 cas91742-21-1白色-类白色晶体-粉末 分子量:303.1358892

热门文章

  1. 再来一个吊打百度网盘的开源神器,还是99年妹子开发的
  2. acl中in和out的区别
  3. OSI第二层:数据链路层功能及作用
  4. ​专为初学者设计——最小的神经网络
  5. 关于协作机器人10个观点的讨论
  6. GPU服务器选购指南-思腾合力篇
  7. DeepLabv3:语义图像分割
  8. 从词向量到Bert——简单作业题+讲解
  9. 《ASP.NET MVC 4 实战》----导读
  10. linux上安全狗的安装