使用Linux ACL設(shè)置發(fā)送集體權(quán)限
不是每位Linux管理員都知道如何在文件系統(tǒng)上部署訪問控制表ACL以增強(qiáng)權(quán)限。現(xiàn)在這種情形應(yīng)該改變。
在基本的Linux權(quán)限主題下,權(quán)限分配為文件所有者、文件所有組等。Linux系統(tǒng)上的每個(gè)文件與目錄都有一個(gè)用戶所有者與組所有者。每個(gè)Linux管理員可以調(diào)用當(dāng)前的擁有者列表,使用表1列出的ls -l命令給他們分配權(quán)限:
表1:在目前的Linux系統(tǒng)顯示當(dāng)前的權(quán)限分配
- Sanders-computer:~ sandervanvugt$$ ls -l
- total 24
- drwx------+ 13 sandervanvugt staff 442 Oct 20 20:17 Desktop
- drwx------+ 103 sandervanvugt staff 3502 Oct 21 08:37 Documents
- drwx------+ 289 sandervanvugt staff 9826 Oct 21 10:05 Downloads
- drwx------@ 51 sandervanvugt staff 1734 Sep 22 16:31 Library
- drwx------+ 29 sandervanvugt staff 986 Oct 9 07:59 Movies
- drwx------+ 5 sandervanvugt staff 170 May 21 23:19 Music
- drwx------+ 24 sandervanvugt staff 816 Sep 19 22:21 Pictures
- drwxr-xr-x+ 4 sandervanvugt staff 136 Apr 12 2013 Public
- drwxr-xr-x 3 sandervanvugt staff 102 Sep 22 16:31 Samsung
- -rwxr-xr-x 1 sandervanvugt staff 324 Sep 23 11:51 bart1
- -rw-r--r-- 1 sandervanvugt staff 148 Aug 14 13:12 rekenprogrammaLOG
- -rwxr-xr-x 1 sandervanvugt staff 607 Jul 3 16:59 script3
如果文件上只需一個(gè)擁有者或者一個(gè)組,默認(rèn)的Linux權(quán)限方案也可以。
不過,如果你需要給一個(gè)組的用戶提供文件的控制權(quán),另一個(gè)組只需閱讀文件,其他的不許訪問文件,那么默認(rèn)的權(quán)限就幫不上忙了,這時(shí)你需要ACL。
Linux ACL為文件找受托者,允許多個(gè)用戶與多個(gè)組擁有權(quán)限。也可以設(shè)置默認(rèn)的訪問控制列表,將默認(rèn)的權(quán)限用于在目錄中創(chuàng)建的新條款。
setfacl命令使用ACL設(shè)置權(quán)限。Linux系統(tǒng)通過表2的getfacl命令顯示目前的ACL分配情況。
申請(qǐng)權(quán)限很簡(jiǎn)單。例如,Linux管理員想讓組織中的銷售團(tuán)隊(duì)成員訪問directory /groups/account里的所有文件的話,可以使用setfacl -R -m g:sales:rx /groups/account。
在該命令中,選項(xiàng)-R用于將ACL遞回directory /groups/account里的所有現(xiàn)有條款。選項(xiàng)-m用于變更ACL,g代表的是組,然后是組的名字與分配的權(quán)限。
表2:如何用getfacl顯示Linux ACL的權(quán)限
- [root@tls groups]# getfacl account/
- # file: account/
- # owner: root
- # group: account
- user::rwx
- group::rwx
- group:sales:r-x
- mask::rwx
- other::---
不要擔(dān)心因?yàn)間etfacl命令而出現(xiàn)黑屏,這是在自動(dòng)更改。
默認(rèn)的Linux ACL
Linux ACL命令在當(dāng)前文件上設(shè)置權(quán)限,但是不會(huì)自動(dòng)在新文件上做任何事。通常,如果一位管理員在目錄中使用ACL,他們也想ACL適用于目錄里創(chuàng)建的所有新文件。這就是默認(rèn)ACL的特權(quán)。
添加默認(rèn)ACL與使用添加選項(xiàng)復(fù)制之前的setfacl命令一樣簡(jiǎn)單。為了將權(quán)限分配給目錄中的所有新文件,部署以下命令:
- setfacl -m d:g:sales:rx /groups/account
你也可以使用getfacl檢查當(dāng)前默認(rèn)的ACL設(shè)置,如表3所示:
表3:檢查默認(rèn)的Linux ACL分配
- [root@tls groups]# getfacl account/
- # file: account/
- # owner: root
- # group: account
- user::rwx
- group::rwx
- group:sales:r-x
- mask::rwx
- other::---
- default:user::rwx
- default:group::rwx
- default:group:sales:r-x
- default:mask::rwx
- default:other::---
一旦設(shè)置好默認(rèn)的ACL,新的權(quán)限將適用于目錄中創(chuàng)建的所有條款。