一 .权限对象
- owner: 文件拥有者
- group:用户组
- others:非文件拥有者,或者是用户组以外的人,其他人.
二. 权限类型 rwx
[root@xiaoagiao tmp]# ls -l
total 12
-rw-r--r--. 1 root root 886 Mar 1 00:20 ac
-rw-r--r--. 1 root root 0 Mar 7 04:47 file1
-rw-r--r--. 1 root root 0 Mar 7 04:47 file2
-rw-r--r--. 1 root root 886 Mar 1 00:20 fstab
drwx-w-r-x. 3 root root 4096 Mar 9 00:46 log
例如 :rw-r–r--r-- (一共九位)
每三位为一组:
- 前三位:属主
- 中间三位:属组
- 后三位 : 其他人
三. rwx
1. 对于文件而言
- r:可以获取文件的数据
- w:可以修改文件的数据
- x:可以将此文件运行成为进程
2. 对于目录而言
- r:可以使用ls命令获取目录下的文件列表
- w:可以修改此目录下的文件列表,可以创建或者删除文件
- x:可以cd到此目录下,并且可以使用ls -l来获取文件的详细属性信息
3. rwx可用数字代表
- r : 4 (读)
- w :2(写)
- x :1(执行)
文件权限判断逻辑
- 文件的创建与删除—>(文件所在目录有W权限)
- 判断用户的身份,用户以什么身份去删除文件,owner—>group—>others
- 如果是目录的属主:目录权限位的左三位需要有w权限,若有则成功,无则失败
- 如果不是目录的属主,是属组,目录权限位中三位需要有w权限,若有则成功,无则失败
- 如果不是目录属于其他人,目录权限位中三位需要有w权限,若有则成功,无则失败
- 文件内容的增加与删除—>(文件本身需要有w权限)
-
判断用户身份。
-
对应权限,如果有则成功,无则失败。
四.权限管理类命令
1. chmod
-
三类用户 (字母u,g o a 代表)
u:属主
g:属组
o:其他人
a:所有 -
赋权表示法:rwx
u=
g=
o=
a=
chmod u=r-x file //文件file属主权限改为r-x
chmod g=--x file //文件file属组权限改为--x
chmod o=rwx file //文件file其他人权限改为rwx
chmod a=rwx file //文件file所有权限改为rwx
- 授权表示法
u+,u-
g+,g-
o+,o-
a+,a-
chmod u+r file //文件file属主权限有r权限
chmod g+w file //文件file属组权限有w权限
chmod o+x file //文件file其他人权限有x权限
chmod a+r file //文件file所有权限有r权限
- -R,递归修改
chmod -R 777 file //file目录下所有文件的权限改为777。
chmod -R u=rwx file //file目录下所有文件属主权限改为rwx。
2.chown修改文件的属主或属组
chown owner : group file
chown owner : group file //file文件的属主改为owner,属组改为group。
chown owner file
chown owner file//file文件的属主改为owner。
chown :group file
chown :group file //file文件的属组改为group。
chown -R owner : group file
chown -R owner : group file //file目录下所有文件的属主改为owner,属组改为group。
3.chgrp修改文件属组
chgrp jerry file
chgrp jerry file //file文件的属组改为jerry。
只有管理员用户可以修改文件或目录的属组,属主和其他人。
五. 进程的安全上下文
- 进程对文件访问权限的应用模型
- 进程的属主,与文件的属主是否相同,如果相同,则应用属主权限
否则,检查进程的属组是否和文件的属组相同,如果相同,则应用属组的权限
否则,使用other权限。 - 将一个文件运行成为一个进程,取决于用户是否对这个文件有x权限,可执行权限
六 ,ALC访问控制列表
定义: ACL(Access control list),即访问控制列表,它是一系列规则的集合,ACL通过这些规则对不同的报文分类,进而对不同的报文进行不同的处理。
要查看acl列表可以使用: getfacl filename
[root@xiaoagiao file3]# getfacl aa
#file: aa
#owner: root
#group: root
user::rw-
group::r--
other::r--
- 显示的数据前面带 # 的表示是文件的默认属性,一二三行就是这个文件的默认属性;
- 第四行用户名栏是空的这代表该文件所有者的权限;
- 第五行用户组栏是空的,这代表该文件的所属用户组的 权限;
- 第六行表示该文件的其他人权限。
acl列表的管理
setfacl
选项:
-m | 配置acl |
---|---|
-x | 删除指定的匹配规则 |
-b | 关闭在该文件上开启的acl列表,同时删除所有的acl参数 |
-R | 递归操作 |
- -m–>setfacl -m u:user1:rwx file
[root@xiaoagiao file3]# getfacl aa
#file: aa
#owner: root
#group: root
user::rw-
group::r--
other::r--
[root@xiaoagiao file3]# ll -l aa
-rw-r--r--. 1 root root 0 Mar 12 05:00 aa
[root@xiaoagiao file3]# setfacl -m u:user1:rwx aa
[root@xiaoagiao file3]# ll -l aa
-rw-rwxr--+ 1 root root 0 Mar 12 05:00 aa
//权限最后出现了加号,代表开启了acl。
[root@xiaoagiao file3]# getfacl aa
#file: aa
#owner: root
#group: root
user::rw-
user:user1:rwx //针对user这个用户的权限是rwx,它就是我们通过setfacl 命令设置的 acl 规则
group::r--
mask::rwx //表示此文件的权限閥值,即 所设置的用户和组的权限必须在mask所定的权限最大值以内才会生效
other::r--
- setfacl -m g:jerry:rwx file.acl
指定jerry这个组的用户对file.acl这个文件有rwx的权限. - setfacl -x u:user1 file
—>删除指定的用户user1 的匹配规则
[root@xiaoagiao file3]# getfacl aa
#file: aa
#owner: root
#group: root
user::rw-
user:user1:rwx //删除指定的用户user1 的匹配规则
group::r--
group:jerry:rw-
mask::rwx
other::r--
[root@xiaoagiao file3]# setfacl -x u:user1 aa
[root@xiaoagiao file3]# getfacl aa
#file: aa
#owner: root
#group: root
user::rw-
group::r--
group:jerry:rw- //指定组的匹配规则并没有改变。
mask::rw-
other::r--
- setfacl -x g:jerry file.acl
—>删除指定组的acl匹配规则。 - setfacl -b file.cal
—>关闭在该文件上开启的acl列表,同时删除所有的acl参数
[root@xiaoagiao file3]# getfacl aa
#file: aa
#owner: root
group: root
user::rw-
user:user1:rwx
group::r--
group:jerry:rw-
mask::rwx
other::r--
[root@xiaoagiao file3]# setfacl -b aa
[root@xiaoagiao file3]# getfacl aa
#file: aa
#owner: root
#group: root
user::rw-
group::r--
other::r--
//关闭在该文件上开启的acl列表,同时删除所有的acl参数
- setfacl -m d:g:user1 dic.acl
—>针对目录指定acl,目录下新建的文件将继承目录的acl匹配规则。
[root@xiaoagiao file3]# setfacl -m d:u:user1:rwx dic
[root@xiaoagiao file3]# getfacl dic
#file: dic
#owner: root
#group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:user1:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
[root@xiaoagiao file3]# cd dic
[root@xiaoagiao dic]# touch ad
[root@xiaoagiao dic]# getfacl ad
#file: ad
#owner: root
#group: root
user::rw-
user:user1:rwx #effective:rw-
group::r-x #effective:r--
mask::rw-
other::r--
//新建的文件中自然会有目录的acl规则。
七, 特殊权限
SUID:
- 只对二进制程序有效。
- 程序需要具有可执行权限。
- 只在执行程序过程中有效(进程)。
- 执行者拥有属主权。
表现 :属主权限的x变为s。
[root@xiaoagiao dic]# ls -l
total 4
-rw-r--r--. 1 root root 0 Mar 12 20:12 ad
[root@xiaoagiao dic]# chmod u+s ad //给ad文件的属主权限赋予s权限。
[root@xiaoagiao dic]# ll -l
total 4
-rwSr--r--. 1 root root 0 Mar 12 20:12 ad
//属主权限。X出变为s。
//当程序成为进程时,执行者拥有属主权限。
SGID
- 只对二进制程序有效。
- 执行者将拥有属组权限。
- 程序需要有可执行权。
- 主要作用于目录,目录下创建新的文件,新的文件数组与目录属组权限相同。
[root@xiaoagiao file3]# ll -l dic
total 4
-rw-r--r--. 1 root root 0 Mar 12 20:12 ad
[root@xiaoagiao file3]# chmod g+s dic
[root@xiaoagiao file3]# ll
total 4
drwxr-sr-x. 2 root root 4096 Mar 12 20:12 dic
//属组权限的执行权限变为s。
SBIT
- 只对目录有效。
- 用户在此目录下创建的文件只有所属用户和root可删除。
[root@xiaoagiao file3]# chmod o+t dic
[root@xiaoagiao file3]# ll
total 4
drwxr--r-t. 2 root root 4096 Mar 12 20:49 dic
//其他人权限的执行权限变为t。
//该目录下创建的文件只有所属用户和root可删除。