Linux文件权限

发布时间 2023-12-07 20:31:38作者: Lissy314

一:基本权限UGO

权限对象:

u:属主(拥有者)

g:属组(拥有者同组)

o:其他人(其他用户)

特殊对象:a:所有人(u+g+o)

 

权限类型:

符号表示 数字表示 说明 符号表示 数字表示 说明
r 4 只读 rx 5 读和执行
w 2 只写 wx 3 写和执行
x 1 只执行 rwx 7 读、写和执行
rw 6 读和写 --- 0 无权限

 

 

 

 

 

 

设置文件属性与权限:

chown:修改文件属主、属组。

chgrp:修改文件属组。

chmod:修改文件权限。

 

二:基本权限ACL

 ACL与UGO的区别:

UGO基本权限:只能一个用户、一个组合、其他人这三个对象进行授权

ACL文件权限管理:设置不同用户,不同的基本权限(r、w、x),对象数量不同

总结:UGO是针对用户、组、其他人三个对象的文件授权,ACL是可以针对指定用户指定组和其他人的文件授权。

 

语法:

setfacl    -m  u:用户或用户组:权限     文件                //给指定用户或组授权

getfacl     文件                                   //查看文件有哪些ACL权限

 

设置ACL权限:

[root@localhost ~]# getfacl /test/t1 //查看t1的ACL权限
getfacl: Removing leading '/' from absolute path names
# file: test/t1 //文件的位置
# owner: root //文件拥有者
# group: root //文件所属组
user::rw- //用户的权限
group::r-- //组的权限
other::rw- //其他人的权限

 

三:高级权限

 SUID:

让普通用户临时拥有该文件的属主的执行权限,suid权限只能应用在二进制可执行文件(命令)上,而且suid权限只能设置在属主位置上。

[root@localhost ~]# ll /etc/shadow #这个文件没有任何权限,只有root超级管理员才能修改
---------- 1 root root 1575 Oct 5 22:48 /etc/shadow
[root@localhost ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10 2014 /usr/bin/passwd #有个suid权限,这就说明了普通用户执行passwd命令时临时提权到root权限了,所以才有root权限才写到shadow文件

 

SGID:

sgid权限一般应用在目录上,当一个目录拥有sgid权限时,任何用户在该目录下创建的文件的属组都会继承该目录的属组。

[zhangsan@localhost ~]$ ll -d Test/
drwxrwxr-x 2 zhangsan nginx 6 Oct 13 20:44 Test/ #查看目录的权限,都是普通权限,属主是zhangsan,属组是nginx
[zhangsan@localhost ~]$ touch Test/file1 #创建一个file1文件
[zhangsan@localhost ~]$ ll Test/file1
-rw-rw-r-- 1 zhangsan zhangsan 0 Oct 13 20:47 Test/file1 #file1的的属主属组都是zhangsan
[zhangsan@localhost ~]$ rm -rf Test/file1 #先删除file1
[zhangsan@localhost ~]$ chmod 2755 Test/ #增加sgid权限
[zhangsan@localhost ~]$ ll -d Test/
drwxr-sr-x 2 zhangsan nginx 19 Oct 13 20:47 Test/ #sgid权限已经增加了,属组位置上有了一个s
[zhangsan@localhost ~]$ touch Test/file2 #重新创建一个file2文件
[zhangsan@localhost ~]$ mkdir Test/test #也创建一个目录
[zhangsan@localhost ~]$ ll Test/ #查看创建的文件和目录
total 0
-rw-rw-r-- 1 zhangsan nginx 0 Oct 13 20:59 file2 #属组都与Test目录的属组一样,这是因为Test目录具有sgid权限
drwxrwsr-x 2 zhangsan nginx 6 Oct 13 20:59 test
[zhangsan@localhost ~]$

 

STICKY:

sticky权限一般针对目录来设置,作用是只允该目录下的文件的创建者删除自己的创建的文件,不允许其他人删除文件。(root用户除外,因为root用户是超级管理员),而且sticky权限只能设置在other位置上。

[root@localhost /]# mkdir /test_tmp #创建目录
[root@localhost /]# chmod 777 test_tmp/ #设置权限
[zhangsan@localhost /]$ ll test_tmp/ -d #查看test_tmp的权限
drwxrwxrwx 2 root root 6 Oct 6 17:28 test_tmp/
[zhangsan@localhost test_tmp]$ echo "fsdsdsd" >> zhangsan.txt #张三用户登录并创建一个zhangsan.txt文件
[lisi@localhost test_tmp]$ echo "fsdsdsd" >> lisi.txt #李四用户登录并创建一个lisi.txt文件
[zhangsan@localhost test_tmp]$ rm -rf lisi.txt #张三用户删除李四的lisi.txt文件,正常删除
[lisi@localhost test_tmp]$ rm -rf zhangsan.txt #李四用户删除张三的zhangsan.txt文件,正常删除