文件权限管理的拓展

标志位: -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 压缩时会保留原文件,且对文件夹进行归档处理后压缩