0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ACL是什么?ACL有什么用?

Linux愛好者 ? 來源:未知 ? 作者:李倩 ? 2018-09-30 16:52 ? 次閱讀

ACL 是什么

ACL的全稱是 Access Control List (訪問控制列表) ,一個針對文件/目錄的訪問控制列表。它在UGO權(quán)限管理的基礎上為文件系統(tǒng)提供一個額外的、更靈活的權(quán)限管理機制。它被設計為UNIX文件權(quán)限管理的一個補充。ACL允許你給任何的用戶或用戶組設置任何文件/目錄的訪問權(quán)限。

本文的演示環(huán)境為 ubuntu 16.04。

ACL有什么用

既然是作為UGO權(quán)限管理的補充,ACL自然要有UGO辦不到或者很難辦到的本事,例如:

可以針對用戶來設置權(quán)限

可以針對用戶組來設置權(quán)限

子文件/目錄繼承父目錄的權(quán)限

檢查是否支持ACL

ACL需要Linux內(nèi)核和文件系統(tǒng)的配合才能工作,當前我們能見到的大多數(shù)Linux發(fā)行版本默認都是支持的。但最好還是能夠先檢查一下:

sudo tune2fs -l /dev/sda1 |grep"Default mount options:"

Defaultmount options: user_xattracl

我們能夠看到默認情況下(Default mount options:)已經(jīng)加入 acl 支持了。

如何設置ACL

我們可以使用setfacl和getfacl命令來設置或觀察文件/目錄的acl權(quán)限。

setfacl

參數(shù)不多,直接列出來了:

getfacl

getfacl 文件/目錄名

下面我們通過一些示例來演示 ACL 權(quán)限的基本用法。

針對用戶來設置權(quán)限

筆者系統(tǒng)中的當前用戶是 nick,再創(chuàng)建兩個用戶 tester 和 tester1 用來進行測試:

$sudo adduser tester

$sudo adduser tester1

創(chuàng)建文件 aclfile,檢查其默認的權(quán)限信息:

把用戶切換為 tester,發(fā)現(xiàn)沒有寫文件的權(quán)限:

這是因為 other 沒有寫 aclfile 文件的權(quán)限。

下面我們?yōu)?tester 用戶賦予讀寫 aclfile 文件的權(quán)限:

$ setfacl -m u:tester:rw aclfile

修改成功后再次以 tester 用戶的身份向 aclfile 文件寫入數(shù)據(jù),這次已經(jīng)可以正常寫入了。查看 aclfile 文件的權(quán)限:

$ ll aclfile

貌似并沒有發(fā)生什么變化,只是在描述權(quán)限的地方多出了一個 “+” 號。下面再看看 acl 權(quán)限:

$ getfacl aclfile

多出了一些信息,其中比較重要的是 user:tester:rw-,就是它讓用戶 tester 具有了讀寫 aclfile 的權(quán)限。

針對用戶組來設置權(quán)限

和針對用戶的設置幾乎一樣,只是把小寫的 u 換成小寫的 g 就行了。

子文件/目錄繼承父目錄的權(quán)限

這是一個很棒的例子,它能讓我們創(chuàng)建的子文件或者子文件夾繼承父文件夾的權(quán)限設置!

$mkdir mydir

$ll -dmydir

$setfacl -md:u:tester:rwx mydir

$getfacl mydir

注意參數(shù) d 在這里起到了決定性的作用。下面是設置后的 mydir 目錄的權(quán)限屬性:

這次多出了一些以 default 開頭的行,這些 default 權(quán)限信息只能在目錄上設置,然后會被目錄中創(chuàng)建的文件和目錄繼承。下面分別在 mydir 目錄下創(chuàng)建文件 testfile 和目錄 testdir,并查看它們的 acl 權(quán)限:

$touch testfile

$mkdir testdir

$getfacl testfile

$getfacl testdir

從上圖可以看到文件 testfile 繼承了父目錄的 acl 權(quán)限,因此用戶 tester 對它有讀寫權(quán)限。下面再看看 testdir 目錄:

從圖中可以看出,testdir 目錄不僅繼承了 tester 的訪問權(quán)限,還繼承了父目錄上的 default 權(quán)限。也就是說我們通過這種方式設置在目錄上的權(quán)限可以被子目錄遞歸的繼承下去。

更改 ACL 權(quán)限

-m 選項其實是在更改文件和目錄的 ACL 權(quán)限

當一個用戶或組的 ACL 權(quán)限不存在時,-m 選項執(zhí)行的是添加操作,

如果一個用戶或組的 ACL 權(quán)限已經(jīng)存在時,-m 選項執(zhí)行的是更新操作。

我們重新創(chuàng)建一個 aclfile 文件,通過下面的命令設置 tester 用戶對它的訪問權(quán)限:

$ setfacl -m u:tester:rwx aclfile

這時 -m 選項是在添加 ACL 權(quán)限。然后我們修改 tester 用戶的權(quán)限,移除其對 aclfile 的執(zhí)行權(quán)限:

$ setfacl -m u:tester:rw aclfile

這時 -m 選項是在更改現(xiàn)有的 ACL 權(quán)限。接下來再讓我們試一下為不同的用戶或組設置 ACL 權(quán)限:

$ setfacl -m g:tester1:rwx aclfile

這次是新添加了 group tester1 的權(quán)限,并且沒有影響 tester 用戶的權(quán)限。

–set 選項會先清除掉原有的 ACL 權(quán)限,然后添加新的權(quán)限

我們接著設置 aclfile 文件的 ACL 權(quán)限:

$ setfacl --set u::rw,u:tester2:rwx,g::r,o::- aclfile

需要注意的是一定要包含 UGO 權(quán)限的設置,不能象 -m 一樣只包含 ACL 權(quán)限。o::- 是另一個需要注意的地方,其完整的寫法是 other::-,就像 u::rw 的完整寫法是 user::rw- 一樣。通常我們可以把 “-” 省略,但是當權(quán)限位只包含 “-” 時,就至少要保留一個。如果寫成了o::,就會報錯。

刪除 ACL 權(quán)限

有添加就有刪除,我們可以通過 setfacl 命令的 -x 選項來刪除指定用戶或組的 ACL 權(quán)限,還可以通過 -b 選項來清除文件和目錄上所有的 ACL 權(quán)限。

我們創(chuàng)建一個新的測試文件 aclfile,并設置下面的 ACL 權(quán)限:

$ setfacl -m u:tester:rwx,u:tester1:rw,g:tester2:rwx aclfile

下面通過 -x 選項刪除 group tester2 的 ACL 權(quán)限(注意命令中只指定了組的名稱而沒有指定權(quán)限信息):

$ setfacl -x g:tester2 aclfile

查看一下結(jié)果,發(fā)現(xiàn)下圖中已經(jīng)沒有 group:tester2 的權(quán)限信息了:

下面通過 -b 選項一次性刪除 aclfile 上所有的 ACL 權(quán)限:

$ setfacl -b aclfile

-b 選項直接清除了文件上的所有 ACL 權(quán)限。這個行為對于目錄來說也是一樣的,這里就不再演示了。

備份和恢復 ACL 權(quán)限

常見的文件操作命令 cp 和 mv 等都支持 ACL 權(quán)限,只是 cp 命令需要加上 -p 參數(shù)。但是 tar 等常見的備份工具不會保留目錄和文件的 ACL 權(quán)限信息。如果希望備份和恢復帶有 ACL 權(quán)限的文件和目錄,可以先把 ACL 權(quán)限信息備份到一個文件里,然后再用 -restore 選項來恢復這些信息。下面演示 ACL 權(quán)限的保存和恢復。我們先創(chuàng)建下面的目錄結(jié)構(gòu):

并分別為 acldir 目錄和 aclfile 文件設置 ACL 權(quán)限:

然后使用下面的命令導出 acldir 目錄的 ACL 權(quán)限信息并保存到文件 acldir.acl 文件中:

$ getfacl -R acldir > acldir.acl

接下來刪除掉 acldir 目錄的 ACL 權(quán)限:

$ setfacl -R -b acldir

現(xiàn)在 acldir 目錄及其子文件上的 ACL 權(quán)限都被刪除掉了。最后我們再通過下面的命令把它們的 ACL 權(quán)限都恢復回來:

$ setfacl --restore acldir.acl

之前刪除的 ACL 權(quán)限全都恢復回來了!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11411

    瀏覽量

    212217
  • 權(quán)限管理
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    9092
  • ACL
    ACL
    +關(guān)注

    關(guān)注

    0

    文章

    61

    瀏覽量

    12285

原文標題:Linux ACL 權(quán)限

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 0人收藏

    評論

    相關(guān)推薦

    CYW43455帶有7ACL 路的設備有什么作用嗎?

    嗎? (1 個中央連接到 7 個外圍設備,還是 1 個外圍設備到 7 個中央?) 2. 如果它不能組成最多 7 個鏈接,什么修改的指導鏈接嗎? 什么將僅限于鏈接號? 3。我能知道為什么我在 ble 數(shù)據(jù)表中找不到要描述的 ACL/SCO 鏈接號嗎? 比如 CYW2070
    發(fā)表于 03-01 09:08

    Consul ACL的配置與使用過程

    Consul ACL訪問控制列表配置
    發(fā)表于 02-27 13:46

    路由器ACL安全經(jīng)典配置錄像教程

    路由器ACL安全經(jīng)典配置錄像教程
    發(fā)表于 09-13 17:53 ?133次下載
    路由器<b class='flag-5'>ACL</b>安全經(jīng)典配置錄像教程

    什么是接入控制表(ACL)

    什么是接入控制表(ACL) 訪問控制列表(Access Control List,ACL) 是路由器接口的指令列表,用來控制端口進出的數(shù)據(jù)包。ACL適用于所有的
    發(fā)表于 04-06 09:05 ?1264次閱讀

    基于ACL的權(quán)限系統(tǒng)實現(xiàn)

    ACL全稱Access Control List,在ACL中,包含用戶(User)、資源(Resource)、資源操作(Operation)三個關(guān)鍵要素。通過將資源以及資源操作授權(quán)給用戶而使用戶獲取對資源進行操作的權(quán)限,模型如下圖所
    發(fā)表于 05-16 15:49 ?0次下載
    基于<b class='flag-5'>ACL</b>的權(quán)限系統(tǒng)實現(xiàn)

    如何通過用戶組和訪問控制表(ACL)來管理用戶

    本教程可以了解如何通過用戶組和訪問控制表(ACL)來管理用戶。
    的頭像 發(fā)表于 12-25 14:30 ?3656次閱讀
    如何通過用戶組和訪問控制表(<b class='flag-5'>ACL</b>)來管理用戶

    ACL資源不足時該如何去優(yōu)化?

    很多業(yè)務都會占用ACL資源,而設備的ACL資源是有限的,當ACL資源不足時,則會導致業(yè)務應用ACL失敗或產(chǎn)生ACL資源不足告警。
    的頭像 發(fā)表于 05-06 10:13 ?3587次閱讀
    <b class='flag-5'>ACL</b>資源不足時該如何去優(yōu)化?

    將Pmod ACL與Arduino Uno一起使用

    電子發(fā)燒友網(wǎng)站提供《將Pmod ACL與Arduino Uno一起使用.zip》資料免費下載
    發(fā)表于 11-21 11:18 ?0次下載
    將Pmod <b class='flag-5'>ACL</b>與Arduino Uno一起使用

    RTL8380M/RTL8382M管理型交換機系統(tǒng)軟件操作指南五:ACL/訪問控制列表

    接下來將對ACL進行詳細的描述,主要包括以下四個方面內(nèi)容:ACL概述、工作原理、ACL組設置、ACL規(guī)則 1.1 ?ACL概述 訪問控制列表
    的頭像 發(fā)表于 01-09 09:40 ?1608次閱讀
    RTL8380M/RTL8382M管理型交換機系統(tǒng)軟件操作指南五:<b class='flag-5'>ACL</b>/訪問控制列表

    一文詳解思科設備ACL與NAT技術(shù)

    ACL 訪問控制列表(Access Control Lists),是應用在路由器(或三層交換機)接口上的指令列表,用來告訴路由器哪些數(shù)據(jù)可以接收,哪些數(shù)據(jù)是需要被拒絕的,ACL的定義是基于協(xié)議的,它適用于所有的路由協(xié)議,并根據(jù)預先定義好的規(guī)則對數(shù)據(jù)包進行過濾,從而更好的控
    的頭像 發(fā)表于 01-16 11:25 ?2652次閱讀

    什么是ACL哪些分類?如何配置?

    ACL本身只能夠用于報文的匹配和區(qū)分,而無法實現(xiàn)對報文的過濾功能(此功能側(cè)面可以說明ACL可以提高網(wǎng)絡的安全性)
    的頭像 發(fā)表于 04-27 09:17 ?2.5w次閱讀
    什么是<b class='flag-5'>ACL</b>?<b class='flag-5'>有</b>哪些分類?如何配置?

    華為企業(yè)交換機ACL經(jīng)典案例

    模擬器三臺主機PC,是PC1,PC2,PC3我們分別使用基本ACL高級ACL和二層ACL來實現(xiàn)一些訪問控制,用戶可自行體會其中的差別。
    的頭像 發(fā)表于 08-14 10:19 ?959次閱讀
    華為企業(yè)交換機<b class='flag-5'>ACL</b>經(jīng)典案例

    華為企業(yè)交換機ACL設置案例分析

    模擬器三臺主機PC,是PC1,PC2,PC3我們分別使用基本ACL高級ACL和二層ACL來實現(xiàn)一些訪問控制,用戶可自行體會其中的差別
    發(fā)表于 08-14 10:19 ?1243次閱讀
    華為企業(yè)交換機<b class='flag-5'>ACL</b>設置案例分析

    訪問控制列表什么?ACL的功能特點

    訪問控制列表(Access Control List,簡稱ACL)是一種網(wǎng)絡安全機制,用于定義和實施對網(wǎng)絡資源或系統(tǒng)對象的訪問權(quán)限。ACL可以精確地控制哪些主體(如用戶、設備、服務等)能夠?qū)μ囟腕w
    的頭像 發(fā)表于 04-03 13:57 ?1039次閱讀

    工業(yè)級POE交換機的ACL

    工業(yè)級POE交換機通常支持訪問控制列表(Access Control List,ACL)功能,用于實施網(wǎng)絡安全策略。ACL可以根據(jù)源IP地址、目標IP地址、傳輸協(xié)議、端口號等條件來過濾和控制網(wǎng)絡流量。
    的頭像 發(fā)表于 04-17 16:14 ?661次閱讀
    工業(yè)級POE交換機的<b class='flag-5'>ACL</b>

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品