问题
——现存tom和jerry两个用户,tom创建一个文件test,test的属主和属组都是jerry,jerry是无法读写这个文件的。要想使jerry能够读写这个文件,可以修改文件系统访问控制列表
FACL(Filesystem Access Contral List)文件系统访问控制列表
——利用文件扩展保存额外的访问控制权限
命令
- setfacl [OPTION] FILENAME
| 选项 | 作用 |
|---|---|
| - m | 设定额外的访问控制权限 |
| - x | 取消额外的访问控制权限 |
①setfacl -m [d:]u:USERNAME:PERM FILENAME:设定某个用户对该文件有某某权限
②setfacl -m [d:]g:GROUPNAME:PERM FILENAME:设定某个组对该文件有某某权限
如果有d:则说明在此目录下创建的文件和目录继承该文件的文件系统访问管理列表
③setfacl -x u:USERNAME FILENAME:取消某用户对该文件的权限
④setfacl -x g:GROUPNAME FILENAME:取消某组对该用户的权限
- getfacl FILENAME
权限应用次序
当用户执行读写某文件的命令时,该命令的进程的属主和属组就是该用户的属主和属组
- 未使用setfacl设置额外控制权限的情况下
①进程的属主与文件的属主进行比对,查看是否有读写权限,如果没有执行下一步
②进程的属主是否属于文件的属组,并查看该属组是否有读写权限,如果进程的属主不属于文件的属组进行下一步
③此时进程的属主属于文件的其他组,查看其他组对文件是否有读写权限
Owner→Group→Other - 使用setfacl设置额外控制权限的情况下
①进程的属主与文件的属主进行比对,查看是否有读写权限,如果没有执行下一步
②进程的属主是否是文件系统访问管理列表中的额外user,是则按给定的权限对文件进行读写
③进程的属主是否属于文件的属组,并查看该属组是否有读写权限,如果进程的属主不属于文件的属组进行下一步
④进程的属主是否属于文件系统访问管理列表中的额外group,是则按给定的权限对文件进行读写
⑤此时进程的属主属于文件的其他组,查看其他组对文件是否有读写权限
Owner→facl,user→Group→facl,group→Other