一:基本权限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文件,正常删除