一、基本权限
修改权限(mode)
chmod命令:
1、 chmod 755 FILENAME
-R 递归修改
2、 chmod u=,g=,o=,ug=,a= FILENAME
3、 chmod u+/-,g+/-,o+-,ug+/-,a+/- FILENAME
4、 chmod --reference=FILENAME FILENAME 引用性修改
chown,chgrp
chown USERNAME FILENAME
-R 递归修改
chgrp USERNAME FILENAME
-R 递归修改
注意:chown可以只该属主,只改属组,同时改属主属组
[root@localhost 1test]# ls -l total 0 -rw---x--x 1 root root 0 Jun 21 09:56 aaaa [root@localhost 1test]# chown :xxj aaaa [root@localhost 1test]# ls -l total 0 -rw---x--x 1 root xxj 0 Jun 21 09:56 aaaa [root@localhost 1test]# chown xxj aaaa [root@localhost 1test]# ls -l total 0 -rw---x--x 1 xxj xxj 0 Jun 21 09:56 aaaa [root@localhost 1test]# chown root:root aaaa [root@localhost 1test]# ls -l total 0 -rw---x--x 1 root root 0 Jun 21 09:56 aaaa
umask:权限遮罩码
定义新建文件或目录时的默认权限
文件:666-umask 注意:如果减得的结果中存在执行权限,则让对应用户类别的八进制权限数字加1
目录:777-umask
设定umask -s 只在当前shell有效
二、特殊权限 suid sgid sticky
安全上下文:
1、进程以某用户的身份运行:进程是发起此进程的用户代理,其以对应用户身份完成所需的操作
2、权限匹配模型:?
注意分区:文件的属主,进程的属主
1、SUID
展示于文件属主的执行权限位:如果属主本来有执行权限则展示为s,否则展示为S
功能:对于一个可执行文件来讲,任何用户运行此程序为进程时,进程的属主不再是发起者本身,而是可执行程序文件自己的的属主
管理文件SUID权限的方法:
chmod u+|-s FILE
SGID
展示于文件属组的执行权限位:如果属组本来有执行权限则展示为s,否则为S
功能:当目录属组有写权限,且有SGID权限时,那么所有属于此目录的属组且以属组身份在此目录新建文件或目录时,新文件或目录的属组不是创建者所属的基本组,而是目录自己的属组
管理文件SUID权限的方法:
chmod g+|-s FILE
sticky
展示于目录其它用户的执行权限位:如果其它用户本来有执行权限,则展示为t,否则为T
功能:对于全局可写或某组全局可写目录,所有用户都于此目录创建文件或删除自己为属主的那些文件,但不能删除非自己为属主的文件或目录
管理文件SUID权限的方法:
chmod o+|-t FILE
chmod 6664 FILE 也可表示特殊权限
chmod 1755 FILE
三、ACL权限
文件访问控制列表:让用户为指定危机添加除了基本访问控制功能之外扩展授权机制
1、查看ACL权限
getfacl 文件名
2、设定ACL权限
setfacl 选项 文件名
-m 设定ACL权限
setfacl -m u:用户名:权限 文件名
setfacl -m g:组名:权限 文件名
[root@localhost tmp]# ls -ld project/ drwxrwx---. 2 root tgroup 6 8月 31 22:43 project/ [root@localhost tmp]# setfacl -m u:st:rx project/ [root@localhost tmp]# ls -ld project/ drwxrwx---+ 2 root tgroup 6 8月 31 22:43 project/ [root@localhost tmp]# getfacl project/ # file: project/ # owner: root # group: tgroup user::rwx user:st:r-x group::rwx mask::rwx other::--- [root@localhost tmp]# groupadd tgroup2 [root@localhost tmp]# setfacl -m g:tgroup2:rwx project/ [root@localhost tmp]# getfacl project/ # file: project/ # owner: root # group: tgroup user::rwx user:st:r-x group::rwx group:tgroup:rwx group:tgroup2:rwx mask::rwx other::--- [root@localhost tmp]#
最大有效权限:
setfacl -m m:最大有效权限 文件名
[root@localhost tmp]# setfacl -m m:rx project/ [root@localhost tmp]# getfacl project/ # file: project/ # owner: root # group: tgroup user::rwx user:st:r-x group::rwx #effective:r-x group:tgroup:rwx #effective:r-x group:tgroup2:rwx #effective:r-x mask::r-x other::--- [root@localhost tmp]#
-x 删除指定的ACL权限
setfacl -x u:用户名 文件
setfacl -x g:组名 文件
[root@localhost tmp]# setfacl -x g:tgroup project/ [root@localhost tmp]# getfacl project/ # file: project/ # owner: root # group: tgroup user::rwx user:st:r-x group::rwx group:tgroup2:rwx mask::rwx other::--- [root@localhost tmp]# ls -ld project/ drwxrwx---+ 2 root tgroup 6 8月 31 22:43 project/
-b 删除所有的ACL权限
setfacl -b 文件名
[root@localhost tmp]# setfacl -b project/ [root@localhost tmp]# getfacl project/ # file: project/ # owner: root # group: tgroup user::rwx group::rwx other::--- [root@localhost tmp]# ll 总用量 4 -rwx------. 1 root root 663 9月 1 2015 ks-script-iAXKKo drwxrwx---. 2 root tgroup 6 8月 31 22:43 project -rw-r--r--. 1 root root 0 8月 31 21:02 sb.sb -rw-------. 1 root root 0 9月 1 2015 yum.log [root@localhost tmp]#
-d 设定默认ACL权限
setfacl -m d:u:用户名:权限 文件名
setfacl -m d:g:组名:权限 文件名
[root@localhost tmp]# setfacl -m d:u:st:wx project/ [root@localhost tmp]# getfacl project/ # file: project/ # owner: root # group: tgroup user::rwx user:st:r-x group::rwx mask::rwx other::--- default:user::rwx default:user:st:-wx default:group::rwx default:mask::rwx default:other::---
-k 删除默认ACL权限
setfacl -k 文件名
[root@localhost tmp]# setfacl -k project/ [root@localhost tmp]# getfacl project/ # file: project/ # owner: root # group: tgroup user::rwx user:st:r-x group::rwx mask::rwx other::---
-R 递归设定ACL权限
递归是父目录在设定ACL权限时,所有的子文件和子文件目录也会拥有的ACL权限
setfacl -m u/g:用户名/组名:权限 -R 文件名
[root@localhost tmp]# setfacl -m u:st:rx -R project/ [root@localhost tmp]# ll project/ 总用量 4 -rw-r-xr--+ 1 root root 0 8月 31 23:18 abc [root@localhost tmp]#
注意:只有文件系统在挂载时启用了facl的功能,facl才能被支持,系统分区默认支持facl
五、文件系统属性chattr权限
chattr [+,-,=] [选项] 文件或目录名
选项:
i:如果对文件设置i属性,那么不允许对文件进行删除,改名,也不能添加和修改数据;
如果对目录设置i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件,也不能改名
a:如果对文件设置a属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;只能用重定向追加入数据
如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除文件
2、查看文件系统属性
lsattr 选项 文件名
-a 显示所有文件和目录
-d 若目标是目录,仅列出目录本身的属性,而不是子文件的属性
六、sudo权限
root把本来只能管理员执行的命令赋予普通用户执行
1、sudo的使用
visudo 实际修改的是/etc/sudoers文件