Linux系统中备份和恢复文件权限设置的教程

你可能听说或碰到过这样的事情:一个系统管理员菜鸟不小心输入"chmod -R 777 /"从而导致了巨大的悲剧,使得整个系统遭到了严重的破坏。在日常管理中,我们有许多工具可以用来备份文件权限,如cp、rsync、etckeeper等。如果你使用了这个备份工具,那么你的确不需要担心改变的文件权限问题。

但如果只是想暂时备份文件权限(而不是文件本身),例如:为了阻止一些目录的内容被覆盖暂时移除该目录下所有文件写的权限;或是正在排除文件权限问题的过程中需要对文件进行chmod命令操作。在这些情况下,我们可以在原始文件权限改变之前对其进行备份,一会我们需要它的时候再将原始权限还原。在很多情况下,如果你只是想要备份文件的权限,那么完整的文件备份是不必要的。

在Linux上,实际上备份和恢复文件权限使用访问控制列表(ACL)是容易的。ACL根据不同的属主和属组在兼容posix的文件系统上定义了单个文件的权限。

以下演示如何使用ACL工具备份和恢复Linux的文件权限

1. 安装ACL工具

在Debian, Ubuntu,Linux Mint上

代码如下:

$ sudo apt-get install acl

在CentOS,Fedora,RHEL上

代码如下:

$ sudo yum install acl

2. 备份当前目录下(包括子目录)所有文件的权限

代码如下:

[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--
...

3. 修改某一文件权限,如:修改linuxprobe.txt及install.txt权限

代码如下:

[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
......

4. 恢复原有权限

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
......

时间: 2024-09-01 04:14:18

Linux系统中备份和恢复文件权限设置的教程的相关文章

Windows或Linux系统中备份和恢复MongoDB数据的教程_MongoDB

windows下面mongodb数据库备份和恢复 我可以讲数据备份到c:\data\dump目录下面,首先创建这个路径.然后进入到mongodb的bin目录下面 我的是: C:\Program Files\mongodb\bin 备份脚本是: //备份 mongodump -h 127.0.0.1:27017 -d test -o c:\data\dump 恢复脚本是: //恢复 mongorestore -h 127.0.0.1:27017 -d test --directoryperdb c

Linux系统中安装使用ntfs-3g挂载NTFS分区的教程

  Linux系统中安装使用ntfs-3g挂载NTFS分区的教程.系统环境默认安装后,不能访问ntfs分区,在安装和配置ntfs-3g以后即可. 1.安装ntfs-3g 代码如下: apt-get -y install ntfs-3g 2.创建挂载的文件夹 我windows下面有三个磁盘.都需要访问.所以在/mnt中新建了三个文件夹,分别是/mnt/C./mnt/D./mnt/E 3.挂载分区 首先使用fdisk命令查看目前磁盘情况 代码如下: debian-hcshangxinli:/home

Linux系统中的文件名和文件种类以及文件权限详解

  Linux文件种类与副文件名 一直强调一个概念,那就是:任何装置在Linux底下都是文件, 不仅如此,连资料沟通的介面也有专属的文件在负责-所以,你会瞭解到,Linux的文件种类真的很多- 除了前面提到的一般文件(-)与目录文件(d)之外,还有哪些种类的文件呢? * 文件种类: 我们在刚刚提到使用'ls -l'观察到第一栏那十个字元中,第一个字元为文件的类型. 除了常见的一般文件(-)与目录文件(d)之外,还有哪些种类的文件类型呢? * 正规文件(regular file ): 就是一般我们

详解Linux系统中的文件名和文件种类以及文件权限

Linux文件种类与副文件名 一直强调一个概念,那就是:任何装置在Linux底下都是文件, 不仅如此,连资料沟通的介面也有专属的文件在负责-所以,你会?解到,Linux的文件种类真的很多- 除了前面提到的一般文件(-)与目录文件(d)之外,还有哪些种类的文件呢? * 文件种类: 我们在刚刚提到使用'ls -l'观察到第一栏那十个字元中,第一个字元为文件的类型. 除了常见的一般文件(-)与目录文件(d)之外,还有哪些种类的文件类型呢? * 正规文件(regular file ):       就是

linux系统中的批量删除文件与空文件删除的命令介绍

本章为大家详细的整理了,在linux系统中批量删除文件和空文件删除的命令,请大家"对症下药" linux下面删除文件或者目录命令rm(remove) 功能说明:删除文件或目录. 语 法:rm [-dfirv][--help][--version][文件或目录...] 补充说明:执行rm指令可删除文件或目录,如欲删除目录必须加上参数"-r",否则预设仅会删除文件. 参 数: -d或--directory 直接把欲删除的目录的硬连接数据删成0,删除该目录. -f或--f

linux系统中程序的安装、卸载和升级教程

对于Linux初学者来说,RPM安装是一个不错的选择.如果想真正掌握Linux系统,源代码安装仍然是Linux下软件安装的重要手段.由于linux系统中应用软件的安装和大家熟悉的windows下面的软件的安装过程存在很大的区别,在linux中,根据下载到安装包的格式的不同用不同的安装方法,下面将对linux下的应用程序安装进行总结和归纳. 1.源代码包的安装 gzip -d apache_1.3.20.tar.gz (解压) tar xvf apache_1.3.20.tar (解包) cd a

linux系统中配置vsftpd及用户权限

先确认下安装上了没,可以使用  代码如下 复制代码 [root@localhost sv005-mongodb]# service vsftpd restart Shutting down vsftpd:                                      [  OK  ] Starting vsftpd for vsftpd:                                [  OK  ] 或者使用命令 [root@localhost sv005-mong

Linux系统中.bz2与.gz文件的区别

unix下常见的压缩文件格式,是由具有高压缩率的压缩工具bzip2生成,以后缀为.bz2结尾的压缩文件. GZ是UNIX系统中的压缩文件,ZIP的Gnu版本,功能和WINRAR一样压缩文件. .bz2和.gz都是linux下压缩文件的格式,有点类似windows下的.zip和.rar文件.&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;.bz2和.gz的区别在于,前者比后者压缩率更高,后者比前者花费更少的时间.也就

解析Linux系统中bashrc和profile文件的作用区别

使用终端ssh登录Linux操作系统的控制台后,会出现一个提示符号(例如:#或~),在这个提示符号之后可以输入命令,Linux根据输入的命令会做回应,这一连串的动作是由一个所谓的Shell来做处理. Shell是一个程序,最常用的就是Bash,这也是登录系统默认会使用的Shell. bashrc和profile都是Shell的启动设置文件(其实这两个文件也是Shell脚本),可以为当前的Shell初始化环境变量等,它们类似Microsoft DOS/Windows下的autoexec.bat文件