Linux文件ACL和压缩归档


 

文件权限管理的拓展

标志位:-rwsrwxrwx

SUID:当一个文件带有suid时,文件默认加上可执行权限,且所有人临时具有管理员权限来执行。

 

标志位:-rwxrwsrwx

SGID:当一个目录文件带有sgid时,所有用户在此目录下创建文件的属组都是此目录的基本组。

 

标志位:-rwxrwxrwt

sticky:当一个目录文件带有sticky时,所有用户在此目录中不能删除属主不是自己的文件。

 

实际应用:

现有2普通用户redhat和gentoo,想让他们两个都能访问develop文件夹,且双方能够修改彼此创建的文件,但不能删除。

 

解决办法:

1.    创建文件develop

mkdir develop

新建组devgrp并把develop的基本组改为此组

groupadd devgrp

chown  :devgrp develop

修改文件夹权限成-rwxrws—T

chomod 3770 develop  #首位3表示两用户创建的文件的属组都是devgrp,实现他们能够同构组权限来相互修改对方的文件,且不能删除。

2.    给两用户添加附加组devgrp

usermod –aG devgrp redhat

usermod –aG devgrp gentoo

 

 

系统默认权限umask的概念

在不同用户新建文件时文件的权限是有系统默认设定的:

目录文件=777 –umask

普通文件=666 –umask

如果计算结果为奇数,加一后作为最终权限(防止生成执行权限)

 

文件的访问控制列表file access control list

 

实现目的给普通用户控制访问自己文件规则的权限。

acl添加:

setfacl –m u:用户名:权限 文件#给指定用户添加文件的权限

setfacl –m g:组名:权限 文件  #给指定组添加文件的权限

eg:

# setfacl -m u:student:wrx redhat.c

drwxrwxr-x+ 2 root root 4096 Aug  2 04:11 redhat.c

权限后加上了“+”号

 

acl查看:

查看文件的访问控制列表使用命令getfacl

[root@server28 tmp]# getfacl redhat.c

# file: redhat.c

# owner: root

# group: root

user::rwx

user:student:rwx

group::r-x

mask::rwx

other::r-x

 

acl的删除:

[root@server28 tmp]# setfacl -x u:student redhat.c/

删除对应用户在该文件上的acl

[root@server28 tmp]# getfacl redhat.c

# file: redhat.c

# owner: root

# group: root

user::rwx

group::r-x

mask::r-x

other::r-x

 

删除所有acl:

[root@server28 tmp]# setfacl -b redhat.c/

[root@server28 tmp]# getfacl redhat.c

# file: redhat.c

# owner: root

# group: root

user::rwx

group::r-x

other::r-x

注意:此时acl mask已被删除

 

所谓mask类似子网掩码的效果,有它存在所有acl权限只能小于等于它的权限

 

acl mask的设置:

[root@server28 redhat.c]# setfacl -m m::rx test

[root@server28 redhat.c]# getfacl test

# file: test

# owner: root

# group: root

user::rw-

user:redhat:rwx          #effective:r-x   此时系统已经自动给出提示受到mask影响

group::r--

mask::r-x

other::r--

 

默认acl:

默认acl只对目录文件有效,表示对所有在目录中新建的文件继承目录的acl。

[root@server28 tmp]# setfacl -m d:u:redhat:rwx redhat.c/

[root@server28 tmp]# getfacl redhat.c/

# file: redhat.c

# owner: root

# group: root

user::rwx

group::r-x

other::r-x

default:user::rwx           #此行往下表示default权限

default:user:redhat:rwx

default:group::r-x

default:mask::rwx

default:other::r-x

 

常用的集中压缩、归档程序

gzip 选项 文件

gzip压缩文件,且删除源文件

选项:

-d 解压缩

-n 指定压缩比(1-9)

zcat在不解压的情况下查看文件内容

压缩文件后缀名:.gz

 

bzip2 选项 压缩目的文件 源文件(可多个)

bzip2 选项 文件  (意为压缩此文件到当前目录)

选项

-d 解压缩

-k 压缩时保留源文件

bzcat在不解压时查看压缩包内容

压缩文件后缀名 :.bz2

 

注意:不论是gzip还是bzip2都不支持对文档的压缩

 

tar 选项 压缩目的文件  源文件(可多个可目录)

压缩常用的两种格式

tar zcvf MYFILE.tar.gz source..

z 进行gzip压缩

c 创建压缩文件

v 显示压缩过程

f 后跟文件名

 

tar jcvf MYFILE.tar.bz2 source..

j 进行bzip2压缩

 

解压

tar xf 压缩包[–C 目的路径]

如不加-C 默认为当前目录

 

注意:tar压缩时会保留原文件,且对文件夹进行归档处理后压缩

 

 

本文出自 “Welcome Amigo !” 博客

相关内容

    暂无相关文章