文件高级权限
分类:linux基础 热度:

文件权限管理之四: ACL: UGO权限的扩展
UGO传统权限:只能一个用户,一个组和其他人
ACL设置基本权限:r,w,x
注意:facl可以根据用户的UID进行权限设置,所以不要使用数字名称的用户!
=ACL基本用法=
设置:
[root@yunwei  ~]# touch /home/test.txt
[root@yunwei  ~]# ll /home/test.txt 
-rw-r--r-- 1 root root 0 10-26 13:59 /home/test.txt
 
[root@yunwei  ~]# getfacl /home/test.txt
[root@yunwei  ~]# setfacl -m u:alice:rw /home/test.txt //增加用户alice权限
[root@yunwei  ~]# setfacl -m u:jack:- /home/test.txt      //增加用户jack权限
 
查看/删除:
[root@yunwei  ~]# ll /home/test.txt 
-rw-rw-r--+ 1 root root 0 10-26 13:59 /home/test.txt
[root@yunwei  ~]# getfacl /home/test.txt
 
[root@yunwei  ~]# setfacl -m g:hr:r /home/test.txt
[root@yunwei  ~]# setfacl -x g:hr /home/test.txt   //删除组hr的权限
[root@yunwei  ~]# setfacl -b /home/test.txt    //删除所有acl权限
 
帮助:
man setfacl
/EXAMPLES
 
=ACL高级用法=
mask:
用于临时降低用户或组(除属主和其他人)的权限
建议:为了方便管理文件权限,其他人的权限置为空
[root@yunwei  ~]# setfacl -m m::--- /home/file100.txt
 
mask总结:                                                                                      
1.facl中,所有权限是一个整体                                                                      
2.mask的值在默认是水涨船高的,根据facl中用户或者组的最高权限的变化而变化                         
3.如果人为设置了mask(非空),那么facl中所设置的用户和组的权限,就会按照mask的权限进行相应的增减
4.如果mask的值被设置为---,那么facl中所设置的用户和组的权限则会按照基本权限中other的权限来看     
 
default: 继承(默认)
要求: 希望alice能够对/home以及以后在/home下新建的文件有读、写、执行权限
 
思路:
步骤一: 赋予alice对/home读、写、执行权限
[root@yunwei  ~]# setfacl -m u:alice:rwx /home
 
步骤二: 赋予alice对以后在/home下新建的文件有读、写、执行权限 (使alice的权限继承)
[root@yunwei  ~]# setfacl -m d:u:alice:rwx /home
 
实验:
第一步:赋予alice对/home读、写、执行权限
[root@node5 ~]# setfacl -m u:alice:rwx /home/
[root@node5 ~]# ll -d /home/
drwxrwxr-x+ 4 root root 4096 Jul 24 16:37 /home/
[root@node5 ~]# getfacl /home/
getfacl: Removing leading '/' from absolute path names
# file: home/
# owner: root
# group: root
user::rwx
user:alice:rwx
group::r-x
mask::rwx
other::r-x
 
第二步:
[root@node5 ~]# setfacl -m d:u:alice:rwx /home/
[root@node5 ~]# getfacl /home/
getfacl: Removing leading '/' from absolute path names
# file: home/
# owner: root
# group: root
user::rwx
user:alice:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:alice:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
 
第三步:
[root@node5 ~]# su - alice
[alice@node5 ~]$ touch /home/alice.txt
[alice@node5 ~]$ ll /home/
total 12
drwx------  2 alice alice 4096 Jul 24 16:37 alice
-rw-rw-r--+ 1 alice alice    0 Jul 24 17:04 alice.txt
-rw----r--+ 1 root  root    24 Jul 24 16:37 test.txt
drwx------  2 tom   tom   4096 Jul 24 15:58 tom
[alice@node5 ~]$ getfacl /home/alice.txt 
getfacl: Removing leading '/' from absolute path names
# file: home/alice.txt
# owner: alice
# group: alice
user::rw-
user:alice:rwx #effective:rw-
group::r-x         #effective:r--
mask::rw-
other::r--
 
为什么权限继承后的文件的mask默认没有按照alice的最高权限进行更改,而是只给了读写权限?
因为新建的文件,权限是按照系统原生权限和umask决定的,本身文件就没有执行权限,但是alice又对该文件有执行权限,所以只能用mask限制一下
如果再次更改权限,mask会和上面说的情况一样
 
关于目录,为什么继承权限中mask有rwx权限?
因为目录本身的初始权限就是755,有执行权限,所以就算继承下来,mask也是rwx
 
文件权限管理之五: 文件属性(权限)
注:设置文件属性(权限),针对所有用户,包括root
[root@yunwei  ~]# lsattr file100 file200 file300 
-------------e- file100
-------------e- file200
-------------e- file300
[root@yunwei  ~]# chattr +a file100             //a-设定此属性的档案只可以以附加模式 (append mode) 开启。
                                                                              任何使用者 (包括超级使用者 root) 只可以附加内容在此档案的尾后,而不能更改原有的内容
                                                                              
[root@yunwei  ~]# chattr +i file200              //i - 设定此属性的档案不可以被任何使用者 (包括超级使用者 root) 改变内容、删除、改变名称
                                                                              其至建立硬连结 (link)。
 
[root@yunwei  ~]# chattr +A file300             //A - 设定此属性的档案被读取内容时,其最后读取时间将不会被改变
 
[root@yunwei  ~]# lsattr file100 file200 file300 
-----a-------e- file100
----i--------e- file200
-------A-----e- file300
 
[root@yunwei  ~]# echo 111 > file100 //以覆盖的方式写入
bash: file100: Operation not permitted
[root@yunwei  ~]# rm -rf file100 
rm: cannot remove `file100': Operation not permitted
[root@yunwei  ~]# echo 111 >> file100 //以追加的方式写入
 
[root@yunwei  ~]# echo 111 > file200
bash: file200: Permission denied
[root@instructor ~]# echo 111 >> file200
bash: file200: Permission denied
[root@instructor ~]# rm -rf file200 
rm: cannot remove `file200': Operation not permitted
 
[root@yunwei  ~]# chattr -a file100
[root@instructor ~]# chattr -i file200
[root@instructor ~]# chattr -i file200
上一篇:文件基本权限 下一篇:软件包管理
猜你喜欢
各种观点
热门排行
精彩图文