自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一文看懂Linux訪問控制列表

譯文 精選
系統(tǒng) Linux
本文介紹Linux訪問控制列表(ACL),它相比標(biāo)準(zhǔn)的Linux權(quán)限提供了更大的靈活性。我將討論為多個獨(dú)立用戶和多個用戶組查看和配置ACL。你選擇的Linux發(fā)行版很可能已經(jīng)啟用了ACL(ACL實際上是文件系統(tǒng)的一項功能)。

譯者 | 布加迪

審校 | 重樓

本文介紹了Linux訪問控制列表(ACL),它相比標(biāo)準(zhǔn)的Linux權(quán)限提供了更大的靈活性。

經(jīng)常在Linux與微軟Windows之間快速切換的一些人認(rèn)識到兩者之間根本性的區(qū)別。其中一個區(qū)別是權(quán)限。標(biāo)準(zhǔn)的Linux權(quán)限非常簡單:指定一個用戶、一個用戶組,然后指定其他任何用戶或用戶組(稱為“others”),并根據(jù)需要授予讀取、寫入和執(zhí)行等權(quán)限。Windows的權(quán)限則要復(fù)雜得多,有嵌套、更多的訪問級別和共享(Share)權(quán)限組合。然而從許多方面來看,Windows權(quán)限在大規(guī)模環(huán)境下更靈活、更實用。

本文介紹Linux訪問控制列表(ACL),它相比標(biāo)準(zhǔn)的Linux權(quán)限提供了更大的靈活性。我將討論為多個獨(dú)立用戶和多個用戶組查看和配置ACL。你選擇的Linux發(fā)行版很可能已經(jīng)啟用了ACL(ACL實際上是文件系統(tǒng)的一項功能)。

簡要回顧標(biāo)準(zhǔn)的Linux權(quán)限

你可以使用chmod命令來配置標(biāo)準(zhǔn)的Linux權(quán)限。該命令可以設(shè)置以下三種訪問級別的任意組合:讀取、寫入和執(zhí)行。你可以將這些訪問級別授予三種身份:

  • 用戶(所有者):擁有文件的一個用戶帳戶(默認(rèn)情況下,這是文件創(chuàng)建者)。
  • 用戶組:在/etc/group文件中顯示的一組用戶。
  • 其他:不是用戶或指定組成員的任何人。

圖1:ls -l命令顯示標(biāo)準(zhǔn)權(quán)限、所有權(quán)和組關(guān)聯(lián)

對于用戶和用戶組較少的獨(dú)立系統(tǒng)而言,這種方法綽綽有余。然而,在共享系統(tǒng)、啟用了文件共享功能的系統(tǒng)或SSH遠(yuǎn)程訪問頻繁的設(shè)備上,這種方法卻變得非常麻煩又笨拙。

這時候文件系統(tǒng)ACL功能就能派上用場。它允許你配置具有不同訪問級別的多個用戶及/或用戶組。

ACL如何提供幫助?

ACL允許你指定多個用戶帳戶,并為它們提供不同的訪問級別。這也意味著你不必將文件的所有權(quán)授予其中一個用戶。它為用戶組提供了同樣的靈活性。

ACL仍然可以識別讀取、寫入和執(zhí)行這三個標(biāo)準(zhǔn)訪問級別,因此你不必重新學(xué)習(xí)已經(jīng)了解的關(guān)于Linux權(quán)限的所有知識。實際上,ACL與標(biāo)準(zhǔn)權(quán)限協(xié)同工作,因此你仍將使用基本的用戶(u)、用戶組(g)和其他(o)等身份。你是在補(bǔ)充常規(guī)權(quán)限,而不是替換常規(guī)權(quán)限。

驗證你的發(fā)行版支持ACL

今天的現(xiàn)代Linux發(fā)行版通常默認(rèn)情況下支持ACL。ACL是文件系統(tǒng)的一項功能。標(biāo)準(zhǔn)的文件系統(tǒng)是ext4、XFS和Btrfs。它們都支持ACL。

你可能不需要檢查自己的Linux發(fā)行版是否支持ACL,但是如果你想確認(rèn),可以使用以下命令:

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

預(yù)計輸出中會看到列出的acl。

圖2:tune2fs命令顯示文件系統(tǒng)設(shè)置,包括是否啟用了ACL

注意,如果針對資源配置了ACL,ls -l輸出將顯示+字符。在下面這個例子中,ACL被應(yīng)用到file1.txt。

圖3:注意file1.txt的權(quán)限字符串末尾的+字符,表示應(yīng)用了ACL

使用setfacl命令

ACL配置命令是setfacl。它依賴標(biāo)準(zhǔn)的Linux命令語法:

command -options argument

參數(shù)將是你應(yīng)用訪問控制的那個文件或目錄。

setfacl命令有很多選項。以下列表含有一些最常見的選項:

  • -m:修改指定的ACL。
  • -x:從ACL中刪除條目。
  • -b:從ACL中刪除所有條目。
  • -d:為特定的目錄配置默認(rèn)ACL。
  • -R:對所有目錄內(nèi)容遞歸應(yīng)用ACL。

然而,setfacl還依賴其他參數(shù)來定義新的訪問控制是否應(yīng)用于用戶或用戶組。

u:<username>
g:<groupname>

如果結(jié)合起來,這些設(shè)置允許管理員實現(xiàn)極其可靠而實用的權(quán)限配置。

下面的命令示例簡要介紹了如何使用setfacl。后面會介紹更具體的示例。

如果為用戶django配置ACL,將讀取(r)權(quán)限授予sample.txt資源,請輸入:

setfacl -m u:django:r sample.txt

針對用戶組engineering的類似示例,如下所示:

setfacl -m g:engineering:r sample.txt

一旦你配置了ACL設(shè)置,需要檢查它們以確保它們是正確的。這時候getfacl命令就有了用武之地。

使用getfacl命令

用于管理ACL的另一個相關(guān)命令是getfacl,它可以顯示當(dāng)前的ACL設(shè)置。

基本語法是getfacl和你想要查看的那個文件或目錄名:

getfacl / dev-projects

然而與大多數(shù)Linux命令一樣,getfacl支持許多有用的選項來修改輸出。這些包括:

  • -c:只顯示ACL條目,并丟棄額外的頭信息。
  • -R:遞歸顯示目錄內(nèi)容。
  • -t:以更可讀的表格格式顯示輸出。

在審計或配置訪問控制時,使用getfacl檢查ACL設(shè)置。

圖4:getfacl命令顯示標(biāo)準(zhǔn)設(shè)置和ACL設(shè)置

ACL用例

下面你將看到ACL的兩個用例,包括場景和相關(guān)命令。考慮一下在你的環(huán)境中類似的情況會如何發(fā)生。

場景1

我將從一個簡單的示例開始入手:sales組對于/sales目錄需要擁有rwx權(quán)限,marketing組應(yīng)該只有r-x權(quán)限。其他人不需要訪問。(請記住,這些組需要執(zhí)行權(quán)限才能cd到目錄中。)

先向銷售組授予標(biāo)準(zhǔn)的rwx權(quán)限:

chown –R : sales /sales
chmod – r 770 /sales

接下來,為marketing組設(shè)置ACL:

setfacl -m g:marketing:r-x /sales

使用getfacl /sales確認(rèn)設(shè)置。

請記住,ACL與標(biāo)準(zhǔn)權(quán)限協(xié)同工作,因此不要忘記使用ls -l命令用于這兩個系統(tǒng)。除了顯示ACL條目外,getfacl命令還顯示標(biāo)準(zhǔn)權(quán)限。

場景2

想象另一種情況,你需要為不同的用戶和組授予不同的訪問級別。假設(shè)你有一個/dev-projects目錄,需要滿足以下要求:

  • 所有者:擁有全面訪問權(quán)限(rwx)的root。
  • 用戶組:擁有全面訪問權(quán)限(rwx)的developers。
  • 額外用戶:擁有只讀取訪問權(quán)限(r-x)的alex(代碼審閱者)。
  • 額外用戶:具有只讀取訪問權(quán)限(r-x)的silas(項目經(jīng)理)。
  • 額外用戶組:擁有只讀取訪問權(quán)限(r-x)的contract-dev-team。

標(biāo)準(zhǔn)權(quán)限無法滿足這類需求,但ACL可以輕松滿足。

先設(shè)置標(biāo)準(zhǔn)權(quán)限:

chown -R root:developers /dev-projects
chmod - R 770 /dev-projects

接下來,為額外用戶和用戶組配置ACL條目:

setfacl -R u:alex:r-x /dev-projects
setfacl -R u:silas:r-x /dev/projects
setfacl -R g:contract-dev-team:r-x /dev/projects

通過使用getfacl和ls -l顯示設(shè)置來檢查結(jié)果。

結(jié)語

訪問控制列表(ACL)擴(kuò)展了Linux權(quán)限的功能,允許對不同的用戶和用戶組授予不同的訪問級別。雖然這使故障排查起來變得更復(fù)雜了,但為了增強(qiáng)靈活性是值得的。

ACL功能是文件系統(tǒng)的一項功能。今天的現(xiàn)代文件系統(tǒng)支持ACL,可能已經(jīng)啟用了它。確保創(chuàng)建一種根據(jù)訪問需求組織資源、從而有效地利用ACL的目錄基礎(chǔ)設(shè)施。一般來說,銷售團(tuán)隊所需的一切資源都應(yīng)該存在于一個父目錄中,營銷團(tuán)隊所需的一切資源都存在于另一個父目錄中。

ACL在大型部署環(huán)境中變得尤為重要,比如支持訪問需求各異的許多用戶和資源的主要文件服務(wù)器?,F(xiàn)在仔細(xì)檢查你的大型部署環(huán)境,看看ACL是否有助于更有效地控制資源訪問。在排查看似神秘的訪問問題時,別忘了考慮ACL。

原文標(biāo)題:A Guide to Linux Access Control Lists,作者:Damon M. Garn

責(zé)任編輯:姜華 來源: 51CTO
相關(guān)推薦

2019-07-01 09:22:15

Linux操作系統(tǒng)硬件

2020-03-31 14:40:24

HashMap源碼Java

2016-08-18 00:21:12

網(wǎng)絡(luò)爬蟲抓取網(wǎng)絡(luò)

2020-06-30 08:27:56

Python開發(fā)工具

2024-08-12 12:30:27

2021-08-01 08:05:39

Linux信號原理

2019-05-22 09:50:42

Python沙箱逃逸網(wǎng)絡(luò)攻擊

2025-01-20 09:15:00

iOS 18.3蘋果iOS 18

2021-08-02 06:56:19

TypeScript編程語言編譯器

2023-03-30 09:53:57

2022-03-29 08:02:01

數(shù)字孿生能源程序

2023-07-14 08:00:00

ORMRust ORMSQL

2021-02-08 22:23:16

云計算辦公硬件

2021-02-21 11:25:17

云計算IaaSPaaS

2021-05-11 10:40:29

JUCAQSJava

2021-05-12 15:16:17

JUCAQSJava

2019-02-13 15:38:09

存儲虛擬化云計算

2022-04-26 13:41:16

區(qū)塊鏈比特幣數(shù)據(jù)庫

2025-03-25 09:06:11

2023-04-10 11:35:31

評估模型業(yè)務(wù)流程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號