Linux ACL基本概念及典型用法

ACL 是什么
ACL的全稱是 Access Control List (訪問(wèn)控制列表) ,一個(gè)針對(duì)文件/目錄的訪問(wèn)控制列表。它在UGO權(quán)限管理的基礎(chǔ)上為文件系統(tǒng)提供一個(gè)額外的、更靈活的權(quán)限管理機(jī)制。它被設(shè)計(jì)為UNIX文件權(quán)限管理的一個(gè)補(bǔ)充。
ACL允許你給任何的用戶或用戶組設(shè)置任何文件/目錄的訪問(wèn)權(quán)限。
ACL有什么用
既然是作為UGO權(quán)限管理的補(bǔ)充,ACL自然要有UGO辦不到或者很難辦到的本事,例如:
1.可以針對(duì)用戶來(lái)設(shè)置權(quán)限
2.可以針對(duì)用戶組來(lái)設(shè)置權(quán)限
3.子文件/目錄繼承父目錄的權(quán)限
檢查是否支持ACL
ACL需要Linux內(nèi)核和文件系統(tǒng)的配合才能工作,當(dāng)前我們能見到的大多數(shù)Linux發(fā)行版本默認(rèn)都是支持的。但最好還是能夠先檢查一下:
sudo tune2fs -l /dev/sda1 |grep “Default mount options:” Default mount options: user_xattr acl
我們能夠看到默認(rèn)情況下(Default mount options:)已經(jīng)加入 acl 支持了。
如何設(shè)置ACL
我們可以使用setfacl和getfacl命令來(lái)設(shè)置或觀察文件/目錄的acl權(quán)限。
setfacl
參數(shù)不多,直接列出來(lái)了:
setfacl [-bkRd] [{-m|-x} acl參數(shù)] 文件/目錄名 -m :配置后面的 acl 參數(shù)給文件/目錄使用,不可與 -x 合用; -x :刪除后續(xù)的 acl 參數(shù),不可與 -m 合用; -b :移除所有的 ACL 配置參數(shù); -k :移除默認(rèn)的 ACL 參數(shù); -R :遞歸配置 acl; -d :配置“默認(rèn) acl 參數(shù)”,只對(duì)目錄有效,在該目錄新建的數(shù)據(jù)會(huì)引用此默認(rèn)值;
getfacl
getfacl 文件/目錄名
實(shí)例
針對(duì)用戶來(lái)設(shè)置權(quán)限
先創(chuàng)建一個(gè)測(cè)試文件test,然后查看其默認(rèn)的權(quán)限:
touch test ll test -rw-r--r-- 1 root root 0 May 28 09:04 test getfacl test # file: test # owner: root # group: root user::rw- group::r-- other::r—
給apache用戶設(shè)置讀寫執(zhí)行test文件的權(quán)限:
setfacl –m u:apache:rwx test
查看test文件屬性的變化:
ll test -rw-rwxr--+ 1 root root 0 May 28 09:04 test
權(quán)限部分多個(gè)了 “+”, 并且與原來(lái)(644)也不一樣了。
查看ACL權(quán)限的變化:
getfacl test ... user:apache:rwx ... mask::rwx ...
和設(shè)置前相比多了user:apache:rwx和 mask::rwx,此時(shí)用戶apache已經(jīng)擁有了讀寫執(zhí)行test文件的權(quán)限。
針對(duì)用戶組來(lái)設(shè)置權(quán)限
和針對(duì)用戶的設(shè)置幾乎一樣,只是把小寫的u換成小寫的g就行了。
子文件/目錄繼承父目錄的權(quán)限
這是一個(gè)很棒的例子,它能讓我們創(chuàng)建的子文件或者子文件夾繼承父文件夾的權(quán)限設(shè)置!
mkdir mydir ll -d mydir drwxr-xr-x 2 root root 4096 May 28 09:35 mydir setfacl –m d:u:apache:rwx mydir
注意參數(shù) d 在這里起到了決定性的作用。
查看下屬性的變化:
getfacl mydir ... default:user::rwx default:user:apache:rwx default:group::r-x default:mask::rwx default:other::r-x
多了些 default開頭的項(xiàng),在mydir下創(chuàng)建一個(gè)新文件試試:
touch mydir/abc getfacl mydir/abc ... user:apache:rwx #effective:rw- group::r-x #effective:r-- mask::rw- ...
OK, 看上去還不賴,默認(rèn)情況下apache用戶是可以對(duì)這個(gè)文件進(jìn)行讀寫執(zhí)行操作的。
這里只是簡(jiǎn)介的介紹了ACL的概念和一些典型的用法,更多的使用方式請(qǐng)參考幫助文檔。
相關(guān)文章
簡(jiǎn)單掌握Linux中用于更改訪問(wèn)控制的chacl命令
這篇文章主要介紹了Linux中用于更改訪問(wèn)控制的chacl命令,某些方面來(lái)說(shuō)chacl命令的功能比chmod命令更加強(qiáng)大,需要的朋友可以參考下2016-01-22網(wǎng)站出現(xiàn)問(wèn)題Linux重啟oracle數(shù)據(jù)庫(kù)的三大技巧
通過(guò)重啟oracle數(shù)據(jù)庫(kù)進(jìn)行處理,而重啟oracle數(shù)據(jù)庫(kù)的方法有好多種,可登陸數(shù)據(jù)庫(kù)進(jìn)行操作,也可在終端操作,下面為大家一一介紹下2015-06-18Linux服務(wù)器要如何啟動(dòng)oracle數(shù)據(jù)庫(kù)(命令啟動(dòng)法)
oracle數(shù)據(jù)庫(kù)能夠事項(xiàng)分布式處理功能,那么Linux服務(wù)器要如何啟動(dòng)oracle數(shù)據(jù)庫(kù)呢?下面以圖文的形式為大家介紹下Linux使用命令啟動(dòng)oracle數(shù)據(jù)庫(kù)的步驟2015-01-14如何在Linux下設(shè)置訪問(wèn)控制列表(ACL)來(lái)控制用戶的權(quán)限
Linux下的訪問(wèn)控制列表(ACL)可以做到不同用戶對(duì)同一文件有不同的權(quán)限,那么具體要如何操作呢?下面以圖文的形式為大家介紹下如何在Linux下設(shè)置訪問(wèn)控制列表來(lái)控制用戶的權(quán)2014-12-12Linux系統(tǒng)配置 Linux訪問(wèn)控制列表(ACL)的權(quán)限控制方法
這篇文章主要為大家介紹了Linux有一種被稱為訪問(wèn)控制列表(ACL)的權(quán)限控制方法,如果你不確定你的文件系統(tǒng)是否支持ACL,請(qǐng)參考下文有Linux配置訪問(wèn)控制列表(ACL)過(guò)程,需要2014-10-12Linux中限制用戶訪問(wèn)權(quán)限的3種方法
這篇文章主要介紹了Linux中限制用戶訪問(wèn)權(quán)限的3種方法,著重講解了Linux ACL的使用,需要的朋友可以參考下2014-04-26RedHat Linux5.5下Oracle 11g安裝圖解教程
Linux下安裝Oracle系統(tǒng)最好是1G內(nèi)存,2G的swap空間,硬盤至少需要4.5G空間2013-07-28linux學(xué)習(xí)日記十一 賬號(hào)管理與ACL權(quán)限設(shè)置
這系列文章主要是一刀寫的linux相關(guān)學(xué)習(xí)資料,這篇文章主要介紹了linux下的學(xué)習(xí)賬號(hào)管理與ACL權(quán)限設(shè)置相關(guān)知識(shí),需要的朋友可以參考下2013-04-15linux oracle 亂碼 Linux環(huán)境Oracle顯示亂碼解決犯法
故障現(xiàn)象:所有出現(xiàn)漢字的地方,都以?替代,或者是直接亂碼,本文介紹詳細(xì)解決方法,需要的朋友可以參考下2012-12-06