檔案擴充屬性和ACL:
某些檔案想讓其他使用者有權限,而chmod和chown都隻有root才有權限使用,就得需要使用檔案的擴充屬性來實作。
acl:access control list
#lsattr 檢視檔案擴充屬性。能看到有顯示的屬性,但是具體内容都是隐藏的。
#getfacl FILE 檢視相關的檔案擴充資訊。
#setfacl [OPTION] ID:OPEREAND FILE
-m 設定權限
u:UID:PERM 使用者的權限
g:GID:PERM 組的權限
m::PREM 有效權限位。使用以後隻有設定位置的權限有效,其他權限最多能和有效權限一緻,可以少于有效權限。
o::PREM other的權限。
-x 撤銷權限
u:UID 撤銷使用者
g:GID 撤銷組
-b 移除所有的acl表
-k 删除預設設定的acl表,隻有目錄才有預設acl表,讓目錄中的檔案自動繼承的。
u:UID:PERM 使用者的權限
g:GID:PERM 組的權限
預設的acl表要在ID前加D:
d:u:UID:PERM
d:g:GID:PERM
例如:
gentoo使用者建立了一個名為gentoo.c的檔案。現在要給centos使用者相關權限。devgrp是一個組名稱。gentoo是個目錄。
#setfacl -m u:centos:rw gentoo.c
#setfacl -m g:devgrp:rw- gentoo.c
#mkdir gentoo
#setfacf -m d:u:centos:r-- gentoo
#setfacl u:centos:rwx gentoo.c 設定rwx權限
#setfacl -m m::r-- gentoo.c 設定有效權限位
#getfacl gentoo.c
mask::r-- 有效權限位為r--
user:centos:rwx#effcetive:r-- centos使用者權限顯示rwx,但是有效權限位隻有r--。是以centos使用者最終隻有r--的權限。
預設情況下建立的分區挂載是不支援facl的,想要使用facl可以在mount的時候指定使用acl。
例如:
#mount -o acl /dev/sda5 /data
想要開機自動挂載并且使用faacl可以修改/etc/fstab,在其中的選項上添加,acl
即可。
例如:
#vim /etc/fstab
/dev/sda5 /date ext3 default,acl 0 0
或者使用tune2fs -o選項來修改分區資訊。多個選項使用,隔開,使用^可以取消設定。
例如:
#tune2fs -o acl /dev/sda5
#tune2fs -o user_xattr /dev/sda5
#tune2fs -o user_xattr,acl /dev/sda5
#tune2fs -o ^user_xattr /dev/sda5