檔案控制ACL

2021-07-22 16:23:02 字數 2300 閱讀 5212

原創:lctt

譯者: vicyu

收藏: 6 分享: 8

使用擁有許可權控制的liunx,工作是一件輕鬆的任務。它可以定義任何user,group和other的許可權。無論是在桌面電腦或者不會有很多使用者的虛擬linux例項,或者當使用者不願意分享他們之間的檔案時,這樣的工作是很棒的。然而,如果你是在乙個大型組織,你執行了nfs或者samba服務給不同的使用者,然後你將會需要靈活的挑選並設定很多複雜的配置和許可權去滿足你的組織不同的需求。

linux(和其他unix等posix相容的作業系統)有一種被稱為訪問控制列表(acl)的許可權控制方法,它是一種許可權分配之外的普遍正規化。例如,預設情況下你需要確認3個許可權組:owner、group和other。而使用acl,你可以增加許可權給其他使用者或組別,而不單只是簡單的"other"或者是擁有者不存在的組別。可以允許指定的使用者a、b、c擁有寫許可權而不再是讓他們整個組擁有寫許可權。

acl支援多種linux檔案系統,包括ext2, ext3, ext4, xfs, btfrs, 等。如果你不確定你的檔案系統是否支援acl,請參考文件。

首先,我們需要安裝工具來管理acl。

ubuntu/debian 中:

$ 

sudo

apt-get

install acl

centos/fedora/rhel 中:

#

yum-

y install acl

archlinux 中:

#

pacman

-s acl

出於演示目的,我將使用ubuntu server版本,其他版本類似。

安裝acl完成後,需要啟用我們磁碟分割槽的acl功能,這樣我們才能使用它。

首先,我們檢查acl功能是否已經開啟。

$ 

mount

現在我們需要重新掛載分割槽(我喜歡完全重啟,因為我不想丟失資料),如果你對其它分割槽開啟acl,你必須也重新掛載它。

$ 

sudo

mount/-

o remount

幹的不錯!現在我們已經在我們的系統中開啟acl,讓我們開始和它一起工作。

基礎acl通過兩條命令管理:setfacl用於增加或者修改acl,getfacl用於顯示分配完的acl。讓我們來做一些測試。

我建立乙個目錄/shared給乙個假設的使用者,名叫freeuser

$ ls-

lh /

我想要分享這個目錄給其他兩個使用者test和test2,乙個擁有完整許可權,另乙個只有讀許可權。

首先,為使用者test設定acl:

$ 

sudo

setfacl

-m u

:test

:rwx

/shared

現在使用者test可以隨意建立資料夾,檔案和訪問在/shared目錄下的任何地方。

現在我們增加唯讀許可權給使用者test2:

$ 

sudo

setfacl

-m u

:test2

:rx

/shared

注意test2讀取目錄需要執行(x)許可權

讓我來解釋下setfacl命令格式:

現在讓我向你展示如何讀取acl:

$ ls-

lh /

shared

你可以注意到,正常許可權後多乙個+標記。這表示acl已經設定成功。要具體看一下acl,我們需要執行:

$ 

sudo

getfacl

/shared

最後,如果你需要移除acl:

$ 

sudo

setfacl

-x u

:test

/shared

如果你想要立即擦除所有acl條目:

$ 

sudo

setfacl-b

/shared

最後,在設定了acl檔案或目錄工作時,cp和mv命令會改變這些設定。在cp的情況下,需要新增「p」引數來複製acl設定。如果這不可行,它將會展示乙個警告。mv預設移動acl設定,如果這也不可行,它也會向您展示乙個警告。

使用acl讓在你想要分享的檔案上擁有更多的能力和控制,特別是在nfs/samba服務。此外,如果你的主管共享主機,這個工具是必備的。

ACL許可權控制

acl,即訪問控制列表 access control list 可以實現更為靈活的檔案訪問許可權控制,除了檔案的所有者,所屬組和其他人,可以為更多的使用者設定許可權,acl可以對特定的使用者 特定的使用者組 特定的檔案或目錄來進行rwx的許可權控制。如,某乙個檔案,不讓單一的某個使用者訪問。1.設定...

HDFS檔案許可權及ACL訪問控制

1 許可權相關配置 1 hdfs site.xml設定啟動acl dfs.permissions.enabledname truevalue 預設值為true,即啟用許可權檢查。如果為 false,則禁用 property dfs.namenode.acls.enabledname truevalu...

ACL訪問控制列表

acl的基本原理 功能與侷限性 網路中常說的acl是網路裝置所提供的一種訪問控制技術 其他很多地方也用到了acl 初期僅在路由器上支援,近些年來已經擴充套件到三層交換機,部分最新的二層交換機如2950之類也開始提供acl的支援。只不過支援的特性不是那麼完善而已。在其它廠商的路由器或多層交換機上也提供...