专栏首页YP小站Linux 整个系统权限玩坏了怎么办?

Linux 整个系统权限玩坏了怎么办?

前言

作者以前就遇到过Linux整个系统文件权限都被设置为777。并且系统没有权限备份,当时服务器也不是云主机,所以没有快照备份。

遇到这种情况怎么办?下面分享下作者个人恢复方法。

万能的百度搜索

通过百度搜索,搜索到一个权限备份与恢复工具:

  • getfacl:备份Linux文件或者目录权限
  • setfacl:恢复Linux文件或者目录权限

问题

虽然有 getfaclsetfacl 工具,但是遇到一个问题,权限损坏的机器并没有权限备份,导致权限无法恢复?

解决问题

注意

如果Linux整个系统文件权限都被设置为777,请不要重启系统,因为很多同学认为万能的重启能解决98%的问题。重启后权限就能恢复。但这次请不要重启系统,如果重启系统,系统直接损坏。

解决思路

虽然损坏的服务器没有权限备份,但是可以找一台与这台损坏的服务器系统版本一样的机器进行整个系统权限备份。在把备份文件拷贝到损坏的服务器上进行权限恢复。

具体操作

注意:这里所有操作,需要使用 root 用户来执行

1、找一个系统版本一样的服务器上操作权限备份

# 备份整个系统权限
$ getfacl -R / > /data/system-all-permissions.facl

2、恢复整个系统权限,在损坏的机器上操作

# 拷贝备份权限文件
$ scp root@192.168.1.10:/data/system-all-permissions.facl /data/

# 恢复整个系统权限
$ setfacl --restore=/data/system-all-permissions.facl

# 权限恢复完,可以找一个业务低峰重启机器
$ reboot

演示

故意把 test 目录权限全部设置成 777,然后对 test 目录做权限恢复。

1、首先备份 test 目录权限

# test 目录结构
$ tree test

test/
└── test1
    └── test1-1
        ├── hello1
        └── hello2

# 备份 test 目录权限
$ getfacl -R ./test/ > test-permissions.facl

# 查看 test 目录权限,权限都是正常的
$ cat test-permissions.facl

# file: test/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

# file: test//test1
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

# file: test//test1/test1-1
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

# file: test//test1/test1-1/hello2
# owner: root
# group: root
user::rw-
group::r--
other::r--

# file: test//test1/test1-1/hello1
# owner: root
# group: root
user::rw-
group::r--
other::r--

2、破坏 test 目录权限

# 破坏 test 目录权限,执行这种命令,一定要看清楚,千万别不看就执行了
$ chmod 777 -R ./test

# 查看 test 目录权限
$ ls -l test

drwxrwxrwx 3 root root 4096 6月  13 23:44 test1

$ ls -l test/test1/

drwxrwxrwx 2 root root 4096 6月  13 23:45 test1-1

$ ls -l test/test1/test1-1/

-rwxrwxrwx 1 root root 0 6月  13 23:45 hello1
-rwxrwxrwx 1 root root 0 6月  13 23:45 hello2

3、test 目录权限都被设置成 777,现在我们来恢复下权限

# 恢复 test 目录权限
$ setfacl --restore=test-permissions.facl

# 查看 test 目录权限,权限都正常恢复
$ ls -lsh test

4.0K drwxr-xr-x 3 root root 4.0K 6月  13 23:44 test1

$ ls -lsh test/test1/

4.0K drwxr-xr-x 2 root root 4.0K 6月  13 23:45 test1-1

$ ls -lsh test/test1/test1-1/

0 -rw-r--r-- 1 root root 0 6月  13 23:45 hello1
0 -rw-r--r-- 1 root root 0 6月  13 23:45 hello2

总结

为了防患于未然,对于自建机房的服务器一定要做好整个系统权限备份。如果使用云主机,每天也需要定时做快照备份。

本文分享自微信公众号 - YP小站(ypxiaozhan),作者:YP小站

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Asciinema:Linux操作命令录制神器

    Asciinema 是一款开源免费的终端录制工具,它可以将命令行输入输出的任何内容加上时间保存在文件中,同时还提供方法在终端或者web浏览器中进行回放。在播放过...

    YP小站
  • 容器化配置生成神器

    Derrick 是一个可以帮助开发者快速完成应用容器化的工具。Derrick 主要关注的是希望容器化的开发者如何在本地进行开发的问题。开发者可以通过使用 Der...

    YP小站
  • Kubectl 常用命令大全

    更详细用法参见:http://docs.kubernetes.org.cn/468.html

    YP小站
  • MySQL用户权限的手册

    挨踢小子部落阁
  • MySQL的实战系列:大字段如何优化

    除特别注明外,本站所有文章均为慕白博客原创,转载请注明出处来自https://geekmubai.com/programming/747.html

    慕白
  • 100天搞定机器学习|Day11 实现KNN

    Day7,我们学习了K最近邻算法(k-NN),了解了其定义,如何工作,介绍了集中常用的距离和k值选择。Day11,通过一个案例实现该算法。

    统计学家
  • 【专知中秋呈献-PyTorch手把手深度学习教程03】LSTM快速理解与PyTorch实现: 图文+代码

    首先祝各位专知好友,中秋佳节快乐! 【导读】主题链路知识是我们专知的核心功能之一,为用户提供AI领域系统性的知识学习服务,一站式学习人工智能的知识,包含人工...

    WZEARW
  • 转-Golang语言-- Test Case

    1. 简介 Go 语言中自带有一个轻量级的测试框架 testing 和自带的 go test 命令来实现单元测试和性能测试。 2. 要求 文件名必须是`_tes...

    李海彬
  • 【TensorFlow】TensorFlow的线性回归

    前面 有篇博文 讲了讲Ubuntu环境下安装TensorFlow,今天来说一说在TensorFlow中如何进行线性回归。 训练数据 本次使用的训练数据是美国房价...

    Alan Lee
  • 04JavaScript数组

    所以可以得到对于索引数组,长度是有效的;但对于关联数组无法获取长度。而对于稀疏数组,取决于键。

    Dreamy.TZK

扫码关注云+社区

领取腾讯云代金券