如何在Linux中配置权限恢复任务

千枫大大_8214

千枫大大_8214

2026-08-30

424人浏览

原创

权限恢复不能靠定时任务自动执行,必须依赖事先生成的、与系统版本严格匹配的acl快照;快照需来自同发行版/版本/架构的干净系统,通过getfacl -r生成并存于外部存储,恢复时需人工介入验证关键权限及特殊位。

如何在linux中配置权限恢复任务

权限恢复不能靠定时任务自动跑

Linux 文件权限恢复不是能写个 cron 定时脚本就完事的事——setfacl --restore 依赖的是事先生成的、与当前系统版本严格匹配的权限快照。没有快照,定时任务只会报错 setfacl: unable to restore ACL: Invalid argument 或静默失败。

  • 快照必须来自同发行版、同大版本、同架构的干净系统(比如 CentOS 7.9 x86_64 的快照不能用于 CentOS 7.6)
  • getfacl -R / 生成的备份文件体积巨大(常超百 MB),频繁执行会拖慢 I/O,且每次备份内容几乎不变,无实际价值
  • 权限被破坏后,cron 服务本身可能已因 /etc/cron.d/ 权限错误或 /var/spool/cron 属主错乱而无法触发

真正该配置的是一次性快照生成流程

权限恢复的“配置”本质是建立可复用的备份链路,不是调度任务。重点在事前准备:

Linux Journey
Linux Journey

当用户想学习Linux基础、命令行、文件系统等时,在LabEx查找并推荐免费的Linux Journey课程。

下载
  • 在新部署的同版本服务器上线后立即执行:getfacl -R / > /root/system-perm-$(hostname)-$(date +%Y%m%d).facl
  • 把备份文件同步到集中存储(如 NFS 或对象存储),并校验 MD5:md5sum /root/system-perm-*.facl
  • 记录对应系统的 rpm -qa | sort > packages-list.txtdpkg --get-selections > packages-list.txt,用于后续验证包一致性
  • 禁止把快照存在本地磁盘——万一 / 被误 chmod -R,备份文件权限也会损坏,失去恢复意义

恢复时要绕过 systemd 和 cron 的依赖

权限全乱之后,systemd 可能拒绝启动服务,cron 根本不运行。必须预设脱离依赖的入口:

  • GRUB 启动参数中预留 rd.break(RHEL/CentOS)或 init=/bin/bash(通用),确保能挂载 root 为可写
  • 准备一个最小化恢复脚本(如 /root/fix-perm.sh),只依赖 bashsetfacl,不调用任何外部命令或配置文件
  • 脚本开头强制检查关键路径权限:[ -f /root/system-perm-*.facl ] || { echo "no backup found"; exit 1; }
  • 避免在脚本里写 reboot ——恢复后需人工确认 ls -l /bin/sudo 是否为 -rwsr-xr-x,再决定是否重启

最易被忽略的细节:ACL 恢复不等于 chmod 复位

setfacl --restore 只还原 ACL 条目,但不会自动修复 setuid/setgid 位、粘滞位(sticky bit)或文件属主。例如:

  • /usr/bin/sudo 权限被改成 0755 后,setfacl --restore 不会把它变回 4755
  • /tmp 目录若丢失了 t 位(即从 1777 变成 0777),ACL 快照里也未必保留该信息
  • 必须单独补一条:chmod u+s /usr/bin/sudo /bin/su && chmod +t /tmp
  • 检查 /etc/shadow 权限是否为 000/etc/sudoers 是否为 440 ——这些在快照里虽有记录,但若原始快照生成时已有偏差,就会连带出错

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3590

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3133

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2173

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5190

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

4862

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

2933

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2425

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

2639

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

277

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

CLion 远程开发实战
CLion 远程开发实战

共0课时 | 0人学习