如何备份及恢复Linux文件权限
你可能听说或碰到过这样的事情:一个系统管理员菜鸟不小心输入"chmod -R 777 /"从而导致了巨大的悲剧,使得整个系统遭到了严重的破坏。在日常管理中,我们有许多工具可以用来备份文件权限,如cp、rsync、etckeeper等。如果你使用了这个备份工具,那么你的确不需要担心改变的文件权限问题。
但如果只是想暂时备份文件权限(而不是文件本身),例如:为了阻止一些目录的内容被覆盖暂时移除该目录下所有文件写的权限;或是正在排除文件权限问题的过程中需要对文件进行chmod命令操作。在这些情况下,我们可以在原始文件权限改变之前对其进行备份,一会我们需要它的时候再将原始权限还原。在很多情况下,如果你只是想要备份文件的权限,那么完整的文件备份是不必要的。
在Linux上,实际上备份和恢复文件权限使用访问控制列表(ACL)是容易的。ACL根据不同的所主和所组在兼容posix的文件系统上定义了单个文件的权限。
以下演示如何使用ACL工具备份和恢复Linux的文件权限
在Debian, Ubuntu,Linux Mint上
$ sudo apt-get install acl
在CentOS,Fedora,RHEL上
$ sudo yum install acl
[root@linuxprobe tmp]# ls -l total 8 -rwxr--r--. 1 root root 0 Mar 3 04:40 install.txt -rwxr-xr-x. 1 root root 0 Mar 3 04:41 linuxprobe.txt [root@linuxprobe tmp]# getfacl -R . > permissions.txt ...
此命令将所有文件的ACL信息全部写入名为permissions.txt文件。
以下是生成的permissions.txt文件中部分目录信息
[root@linuxprobe tmp]# cat permissions.txt # file: . # owner: root # group: root # flags: --t user::rwx group::rwx other::rwx # file: install.txt # owner: root # group: root user::rwx group::r-- other::r-- # file: linuxprobe.txt # owner: root # group: root user::rwx group::r-x other::r-x # file: permissions.txt # owner: root # group: root user::rw- group::r-- other::r-- ...
[root@linuxprobe tmp]# chmod 733 linuxprobe.txt [root@linuxprobe tmp]# chmod 573 install.txt [root@linuxprobe tmp]# ls -l total 8 -r-xrwx-wx. 1 root root 0 Mar 3 04:40 install.txt -rwx-wx-wx. 1 root root 0 Mar 3 04:41 linuxprobe.txt -rw-r--r--. 1 root root 4361 Mar 3 04:41 permissions.txt ......
1)cd到创建permissions.txt时所在的目录
2)执行以下命令:
setfacl --restore=permissions.txt
可以看到linuxprobe.txt及install.txt权限恢复了
[root@linuxprobe tmp]# setfacl --restore=permissions.txt [root@linuxprobe tmp]# ls -l total 8 -rwxr--r--. 1 root root 0 Mar 3 04:40 install.txt -rwxr-xr-x. 1 root root 0 Mar 3 04:41 linuxprobe.txt -rw-r--r--. 1 root root 4361 Mar 3 04:41 permissions.txt ......
如何备份及恢复Linux文件权限的更多相关文章
- [转帖]如何备份及恢复Linux文件权限
如何备份及恢复Linux文件权限 http://embeddedlinux.org.cn/emb-linux/entry-level/201604/10-5337.html 三年前我就干过 chm ...
- linux文件权限总结(创建root不可以删除文件、只可追加的日志文件等)
文件类型 对于文件和目录的访问权力是根据读访问,写访问,和执行访问来定义的. 我们来看一下 ls 命令的输出结果 [root@iZ28dr6w0qvZ test]# ls -l 总用量 72 -rw- ...
- 修改linux文件权限
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁 ...
- Linux:文件权限
Linux:文件权限 1.文件权限 ☆文件所有者 ☆用户组 ☆其他人 ☆ROOT 说明: Linux系统中默认所有系统上的账号与一般身份用户,还有那个root的相关信息记录在/etc/passwd文件 ...
- Linux 文件权限总结
在 Linux 中最基本的任务之一就是设置文件权限.理解它们是如何实现的是你进入 Linux 世界的第一步.如您所料,这一基本操作在类 UNIX 操作系统中大同小异.实际上,Linux 文件权限系统就 ...
- Linux&shell 之Linux文件权限
写在前面:案例.常用.归类.解释说明.(By Jim) Linux文件权限用户useradd test (添加用户test)userdel test (删除用户test)passwd test(修改用 ...
- linux文件权限整理
网上对linux文件权限的已经很多,不过还是要自己整理一下,不然每次都要查资料. linux下所有东西都是文件,包括设备,所以这里的文件也包括文件夹. 先是查看文件权限:ls -lh xzc@xzc- ...
- 修改linux文件权限命令:chmod 【转载】
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. chmod 命令可以改变所有子目录的权限,下面有2种方法 改变一个文件的权限: chmod ...
- Linux 文件权限于目录配置
用户与用户组 我們以王三毛為例,王三毛這個『檔案』的擁有者為王三毛,他屬於王大毛這個群組, 而張小豬相對於王三毛,則只是一個『其他人(others)』而已. 不過,這裡有個特殊的人物要來介紹的,那就是 ...
随机推荐
- WPF自定义下拉控件
可以搜索的下拉条 using System; using System.Collections; using System.Collections.Generic; using System.Coll ...
- pic_for_youdao
- C++编程规范之17:避免使用“魔数”
摘要: 程序设计并非魔术,所以不要故弄玄虚,要避免在代码中使用诸如42和3.1415926这样的文字常量.它们本身没有提供任何说明,并且因为增加了难于检测的重复而使维护更加复杂.可以用符号名称和表达式 ...
- Java学习之List接口
List接口 List接口的定义如下: public interface List<E>extends Collection<E> 可以发现List接口时Collection接 ...
- Mybatis高级映射、动态SQL及获得自增主键
一.动态SQL 相信大家在用mybatis操作数据库时时都会碰到一个问题,假如现在我们有一个关于作者的list authorList,需要根据authorList里已有的作者信息在数据库中查询相应作者 ...
- [React] Extracting Private React Components
we leverage private components to break our render function into more manageable pieces without leak ...
- Netmon: A light-weight network monitor for Windows
Netmon is a light-weight network monitor that works on Windows operating systems. It provides differ ...
- AngularJs练习Demo14自定义服务
@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport&quo ...
- cocos2dx 动画 二(iOS)
7.Bezier曲线 需要ccBezierConfig结构体,设置2个控制点和一个结束点 ccBezierConfig bc; bc.controlPoint_1 = Vec2(,); bc.cont ...
- 3 windows环境与shell交互操作
/** * 由SshConfig配置获取一个Session * @param conf * @return */ public static Session createSession(SshConf ...