Linux文件系統(tǒng)ACLs權(quán)限控制
Linux文件系統(tǒng)給所有者(owner)、所有組(owning group)、其它(other)每一類用戶分別定義了的rwx權(quán)限,且是彼此獨(dú)立的。雖然Linux有也Linux特殊文件權(quán)限的功能支持,但要像在Windows下把權(quán)限控制可以精確到用戶和組(如允許某個(gè)文件允許某一特殊用戶修改,允許某一組的用戶可以查看等)一樣靈活,這些顯然還不夠。令人欣慰的是,Linux也有ACLs權(quán)限控制的支持,在Linux中ACLs在ReiserFS,Ext2,Ext3,JFS,XFS等文件系統(tǒng)中受到支持。
修改文件ACL:setfacl -m u:tux:rw file允許用戶tux讀寫file文件
查看文件ACL:getfacl file
使用了ACL的文件,通過ls -l命令來查看權(quán)限時(shí),后面會(huì)有一個(gè)“+”號(hào),group的權(quán)限會(huì)有變化(使用了ACL mask權(quán)限)。
文件使用ACL后,權(quán)限角色有如下幾種類型:
最小化ACL:
owning user
owning group
other
擴(kuò)展ACL:
可以包含若干個(gè)對(duì)象:named user(設(shè)置單獨(dú)用戶的訪問權(quán)限)、named group(設(shè)置單獨(dú)群組的訪問權(quán)限)
包含一個(gè)mask(限制named users 和 named groups的權(quán)限)
舉例說明如下:
owner user::rwx
named user user:name:rwx
owning group group ::rwx
named group group :nam e:rwx
mask mask::rwx
other other::rwx
定義在owner、other里的權(quán)限一直都是有效的,其它權(quán)限可能用效或者被隱蔽。
named user與named group的值是否生效,還要看其值與mask的“與”值,即mask也要有該權(quán)限,才能生效。
mask的值一般是與owning group一致的,可以通過修改owning group的值來修改mask。
#p#舉例說明如下:
linux-canbeing:/home/canbeing/temp # getfacl my
# file: my
# owner: canbeing
# group: users
user::rw-
user:canbeing:rwx#effective:r-x w沒有生效
group::r--
mask::r-x
other::r--
子目錄會(huì)繼承父目錄的ACL。
如果父目錄有ACL,則創(chuàng)建新文件或者文件夾時(shí),默認(rèn)權(quán)限不會(huì)根據(jù)umask來計(jì)算,而是繼承或者根據(jù)命令參數(shù)。
使用setfacl -d -m u:canbeing:rw /tmp/acl_test/ 則此權(quán)限會(huì)得到子目錄及文件的繼承(權(quán)限以default開頭)
linux-canbeing:/tmp/acl_test # getfacl /tmp/acl_test/
getfacl: Removing leading '/' from absolute path names
# file: tmp/acl_test/
# owner: root
# group: root
user::rwx
user:canbeing:rwx
group::---
mask::rwx
other::---
default:user::rwx
default:user:canbeing:rw-
default:group::---
default:mask::rw-
default:other::---
【編輯推薦】