Linux訪問控制列表(ACL)

發表于:2007-07-04來源:作者:點擊數: 標簽:
傳統UNIX系統的訪問控制方法是非常簡單的,它把用戶分成三類:文件的擁有者、組成員和其他用戶。很顯然,這種訪問控制模型過于簡陋了。隨著對 Linux系統 安全 性要求的提高,需要一種更細粒度的訪問控制模型來代替傳統UNIX系統的訪問控制模型。使用ACL(Access
傳統UNIX系統的訪問控制方法是非常簡單的,它把用戶分成三類:文件的擁有者、組成員和其他用戶。很顯然,這種訪問控制模型過于簡陋了。隨著對Linux系統安全性要求的提高,需要一種更細粒度的訪問控制模型來代替傳統UNIX系統的訪問控制模型。使用ACL(Aclearcase/" target="_blank" >ccess Control List,訪問控制列表)系統,系統管理員能夠為每個用戶(包括root用戶在內)對文件和目錄的訪問提供更好的訪問控制。在POSIX中定義了一種訪問控制叫做POSIX ACL,可以實現基于單獨用戶的控制,目前的大多數Linux訪問控制工程都是以此為基礎

Linux訪問控制列表(ACL)- -

                                      

相關鏈接:
一、Extended attributes and access control lists
http://acl.bestbits.at
http://acl.bestbits.at/about-acl.html

二、Linux Trustees ACL project
http://trustees.sourceforge.net/

三、ea/acl訪問控制系統介紹
http://www.linuxaid.com.cn/articles/7/9/794686264.shtml

四、Grsecurity ACL系統(一)
http://www.chinalinuxpub.com/read.htm?id=1261
http://linuxaid.com.cn/articles/1/1/118781745.shtml

Red Hat Linux 9 發行注記 寫到:

特殊備注:在前兩個公開 beta 發行版本中添加到內核的ACL 支持被證明尚不穩定,并導致了內核退化。因此,Red Hat在 Red Hat Linux 9 中將 ACL 支持從內核中刪除了。內核工程師將會繼續致力于提供 ACL 支持的工作,它將會在未來的發行版本中提供。為方便那些希望測試 ACL 的用戶和開發者,ACL 支持所需的 attr 和 acl 軟件包仍被包括了。若未來的測試演示了 ACL 支持質量有顯著提高,Red Hat 可能會自行決定通過升級方式為本次發行的Red Hat Linux 提供 ACL 支持。

Red Hat Linux 8.0.94 發行注記 寫到:

用于 ext3 的 EA(擴展屬性)和 ACL(訪問控制列表)

Red Hat Linux 8.0.94 包含為 ext3 文件系統提供 EA 和 ACL 支持的內核。它根據的補丁和用戶級別工具來自:

http://acl.bestbits.at/

為了在文件系統上啟用 ACL,這個文件系統必須使用 -o acl 掛載選項來被掛載。

從本質上講,EA 用于 ACL 支持。為了要分開使用 EA,文件系統必須使用 -o user_xattr 掛載選項被掛載。

對它的支持分散在幾個軟件包中:

- kernel — 提供在磁盤上為 ext3 文件系統貯存 EA 和 ACL 的支持,以及對操作 EA 和 ACL 的系統調用的支持。內核軟件包終于提供了強化文件訪問上的 ACL 的機制。

- e2fsprogs — 包括了對新添的在磁盤上的擴展屬性格式的知識,因此 fsck 能夠使用新特性來檢查文件系統。

- attr, libattr — 提供對文件附屬的擴展屬性的訪問。

- acl, libacl — 提供設置、修改、和查詢文件上 ACL 設置的工具。

- libattr-devel, libacl-devel — 使用 acl 和 attr 庫來建構文件所需的庫和包含文件。

- star — 一種歸檔工具。它可以創建和拆開tar 和 pax 格式的歸檔,還可以備份并恢復 EA 和 ACL。

- samba — 在本次發行版本中,Samba 能夠導出 ACL 功能。關于如何在你的配置中啟用這項功能的信息,請參閱 samba 的文檔。

除此之外,coreutils 軟件包已被更新。因此 cp 和 mv 命令將會復制文件附屬的 ACL 和 EA。

關于設置和讀取 ACL 的更多信息,請參閱 setfacl 和 getfacl 的說明書(man)頁。關于ACL 的常規信息可以在 acl 的說明書(man)頁找到。你還可以在前面提到的 bestbits 網站上找到更多關于 EA 和 ACL 的常規信息。

注意:普通的 tar 和 dump 命令不能備份 ACL 和 EA。

與較老系統的兼容性

沒有設置 ACL 或 EA 的任何 ext3 文件系統在較老的內核上將與從前的運行方式相同,并可以使用較老的 e2fsprogs 工具來檢查。

一旦某個在任一給定文件系統上的文件被設置了 EA 或 ACL,那個文件系統將會得到 ext_attr 屬性。你可以看到該屬性使用以下命令:

tune2fs -l

已得到 ext_attr 屬性的文件系統可以使用老內核來掛載,但是很明顯,那些內核將不會強制對已被設置的 ACL 的使用。

注意:文件系統檢查程序 e2fsck 的較老版本將會拒絕檢查這樣的文件系統。

Red Hat Linux 7.3.93 發行注記 寫到:

該 beta 版本包括為 ext3 文件系統提供 EA 和 ACL 支持 的內核,它以 http://acl.bestbits.at/ 中的補丁和用戶級別工具為 基礎。

對 EA 和 ACL 的支持包括在幾個軟件包中:


kernel — 提供對在 ext3 文件 系統磁盤上貯存 EA 和 ACL 的支持;提供操作 EA 和ACL 的系統 調用程序;提供在文件訪問上實施 ACL 的機制。


e2fsprogs — 包括新添的 on-disk 擴展屬性格式的知識,因此 fsck 可以使用這項新功能來檢查 文件系統。


attr — 提供到連接在 libattr 文件 的擴展屬性的訪問。


acl — 提供設置、修改和查詢文件上 的 ACLs libacl 集合的工具


libattr-devel — 使用 libacl-devel、acl、 和 attr 庫來建構程序所需的庫和標頭文件。


star — 可以創建和解包以 .tar 和 .pax 格式歸檔的歸檔工具,它們可以備份并 恢復 EA 和 ACL。


samba — samba 軟件包帶有 ACL 支持。在 Samba 中配置 ACL 支持的選項 有許多種,你需要閱讀 Samba 文檔來利用這項功能。


另外,fileutils 軟件包已被更新, 因此,cp 和 mv 可以復制與文件相關的 ACL 和 EA。

參閱 setfacl 和 getfacl 的說明書頁(在 shell 提示下鍵入 man setfacl 和 man getfacl 來閱讀)可獲取設置和讀取 ACL 的信息。 在 shell 提示下鍵入 man 5 acl 來閱讀關于 ACL 的 常規信息。你還可以在前面提到的 bestbits 網站中找到關于 EA 和 ACL 的 一般信息。

注記:普通的 tar 和 dump 命令將 不會 備份 ACL 和 EA。

和老系統的兼容性:

任何沒有 ACL 或 EA 的 ext3 文件系統會在老內核 上照常運行,可以使用舊有的 e2fsprogs 工具來檢查。

一旦 EA 或 ACL 被設置在給定文件系統上的任何一個文件 上,該文件系統將會有 ext_attr 屬性,你可以使用“tune2fs -l” 在文件系統設備上看到。這樣的文件系統可以使用老版本 的內核掛載,但是這些老內核將不會實施任何已設置的 ACL。 可是,老版本的 e2fsprogs 中的 e2fsck 將會拒絕檢查這樣的文件系統。

Samba(need re-compile)+XFS Filesystem(need patck), Samba將允許像 NT 的 ACL(訪問控制列表)那樣的 Windows 文件共享。

參考:

一、

http://www-900.ibm.com/developerWorks/cn/linux/server/samba/samba2.2/index.shtml

Samba 2.2 內幕 寫到:

ACL 支持
Samba 2.2 另一個不可思議的絕妙特性是對訪問控制表 (ACL) 的新支持。你們當中許多人都知道,Windows NT 和 2000 使用 ACL 來設置對文件和目錄的許可權,與大多數 UNIX 系統所使用的傳統“一個用戶一個組”的解決方案相比,它們提供的對許可權的控制更為細密。以前,Samba 沒有辦法直接將 ACL 存儲在文件系統上,因為那時還沒有可用的 Linux 的 ACL 支持。 但現在,我們開始看到了 ACL 支持的開端 -- 當前有 Linux 內核 2.4.3 的 ACL 內核補丁可用(請參閱下面的參考資料),以及一些用戶空間工具。ACL 支持目前在 Samba 2.2.0 中得到了完全支持。

盡管 Samba 2.2.0 支持 ACL,但目前在內核和文件系統中啟用 ACL 支持時還是需要許多棘手的步驟。因為標準 ext2 文件系統無法存儲 ACL 信息,所以需要首先安裝支持 ACL 的特殊 ext2 版本;這將對內核進行修補和重新編譯,并升級系統上的所有 ext2 實用程序。

不過,如果您執行了所有這些操作,將可以在 Linux 上使用 Samba 的 ACL 支持。設置完畢后,Samba 將保留 NTFS ACL,而不是將 ACL 許可權映射成不太靈活的標準 UNIX 許可權方案。這是件好事。設想一下:與 winbind 結合在一起的 ACL 支持將允許基于 Linux 的系統“吸收”Windows NT 用戶、組和 ACL 許可權。非常驚人的成就!

但現在,Linux 下的 ACL 支持還處于初級階段。幾乎每個備份程序都不備份 ACL 信息,意味著除非采取一些特殊手段,否則將很容易丟失 ACL。當然,ACL 支持在文件系統級別上幾乎不存在(只有修補過的 ext2 版本和當前提供 ACL 支持的 SGI 的 XFS -- 請參閱下面的參考資料)這一事實使得用 ACL 支持 Linux 系統成為一項非常艱難的任務。 不過,因為 Linux 發行版最終在缺省情況下將啟用 ACL,這一過程也將變得越發容易。

二、

http://listas.conectiva.com.br/listas/linuxisp-br/arquivo/2002/11/msg00009.html

三、

http://linux-xfs.sgi.com/projects/xfs/mail_archive/200208/msg00477.html

本文出自http://www.linuxfans.org/nuke/modules.php?file=viewtopic&;name=Forums&p=3960551

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97