成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用ACL設置用戶訪問指定文件/目錄的權限

系統 Linux
假設有個名叫 magi 的用戶,他想要修改 httpd.conf 文件怎么辦呢? 這個文件是歸 root 用戶所有的,這樣如何授權呢? 為了解決這種情況,訪問控制列表(ACL)誕生了。

使用ACL設置用戶訪問指定文件/目錄的權限

當提到文件和目錄的權限時,你的***反應可能是“屬主/群組/其它”權限。 這些權限可以通過 chmod、 chown 等命令來修改。

文件和目錄都有屬主 (文件所有者 )、群組 (所屬組) 以及其它權限,這些權限構成一個集合。 然而這些權限集合有它的局限性,無法做到為不同的用戶設置不同的權限。

Linux 對文件和目錄有以下默認權限。

  • 文件 -> 644 -> -rw-r-r- (所有者有讀寫權限,組成員有只讀權限, 其他人也只有讀權限)
  • 目錄 -> 755 -> drwxr-xr-x (所有者有讀、寫和執行權限,組成員有讀和執行的權限,其他人也有讀和執行的權限)

比如: 默認情況下,所有者可以訪問和編輯他們自己主目錄中的文件, 也可以訪問相關同組人的文件,但他們不能修改這些文件,因為組成員沒有寫權限,而且讓組成員有寫權限也是不明智的。 基于同樣的原因,他/她也不能修改其他人的文件。 然而在某些情況下,多個用戶想要修改同一個文件, 那該怎么辦呢?

假設有個名叫 magi 的用戶,他想要修改 httpd.conf 文件怎么辦呢? 這個文件是歸 root 用戶所有的,這樣如何授權呢? 為了解決這種情況,訪問控制列表Access Control List(ACL)誕生了。 

什么是 ACL?

ACL 表示訪問控制列表Access Control List(ACL),它為文件系統提供了附加的、更具有彈性的權限機制。 它被設計來為補充 UNIX 文件權限機制。 ACL 允許你賦予任何某用戶/組訪問某項資源的權限。 setfaclgetfacl 命令會幫助你管理 ACL 而不會有任何麻煩。 

什么是 setfacl?

setfacl 用于設置文件和目錄的 ACL。 

什么 getfacl?

getfacl - 獲取文件的 ACL 。對于每個文件, getfacl 都會顯示文件名、文件所有者、所屬組以及ACL。 如果目錄有默認 ACL, getfacl 也會顯示這個默認的 ACL。 

如何確認是否啟用了 ACL?

運行 tune2fs 命令來檢查是否啟用了 ACL。

  1. # tune2fs -l /dev/sdb1 | grep options
  2. Default mount options: (none)

上面的輸出很明顯第說明 /dev/sdb1 分區沒有啟用 ACL。

如果結果中沒有列出 acl,則你需要在掛載選項中加上 acl。 為了讓它***生效, 修改 /etc/fstab/app 這一行成這樣:

  1. # more /etc/fstab
  2.  
  3. UUID=f304277d-1063-40a2-b9dc-8bcf30466a03 / ext4 defaults 1 1
  4. /dev/sdb1 /app ext4 defaults,acl 1 1
  5.  

或者,你也可以使用下面命令將其添加道文件系統的超級塊中:

  1. # tune2fs -o +acl /dev/sdb1

現在,通過運行以下命令來動態修改選項:

  1. # mount -o remount,acl /app

再次運行 tune2fs 命令來看選項中是否有 acl 了:

  1. # tune2fs -l /dev/sdb1 | grep options
  2. Default mount options acl

嗯,現在 /dev/sdb1 分區中有 ACL 選項了。 

如何查看默認的 ACL 值

要查看文件和目錄默認的 ACL 值,可以使用 getfacl 命令后面加上文件路徑或者目錄路徑。 注意, 當你對非 ACL 文件/目錄運行 getfacl 命令時, 則不會顯示附加的 usermask 參數值。

  1. # getfacl /etc/apache2/apache2.conf
  2.  
  3. # file etc/apache2/apache2.conf
  4. # owner root
  5. # group root
  6. user::rw-
  7. group::r--
  8. other::r-- 

如何為文件設置 ACL

以下面格式運行 setfacl 命令可以為指定文件設置 ACL。在下面的例子中,我們會給 magi 用戶對 /etc/apache2/apache2.conf 文件 rwx 的權限。

  1. # setfacl -m u:magi:rwx /etc/apache2/apache2.conf

仔細分析起來:

  • setfacl: 命令
  • -m: 修改文件的當前 ACL
  • u: 指明用戶
  • magi: 用戶名
  • rwx: 要設置的權限
  • /etc/apache2/apache2.conf: 文件名稱

再查看一次新的 ACL 值:

  1. # getfacl /etc/apache2/apache2.conf
  2.  
  3. # file etc/apache2/apache2.conf
  4. # owner root
  5. # group root
  6. user::rw-
  7. user:magi:rwx
  8. group::r--
  9. mask::rwx
  10. other::r--

注意: 若你發現文件或目錄權限后面有一個加號(+),就表示設置了 ACL。

  1. # ls -lh /etc/apache2/apache2.conf
  2. -rw-rwxr--+ 1 root root 7.1K Sep 19 14:58 /etc/apache2/apache2.conf 

如何為目錄設置 ACL

以下面格式運行 setfacl 命令可以遞歸地為指定目錄設置 ACL。在下面的例子中,我們會將 /etc/apache2/sites-available/ 目錄中的 rwx 權限賦予 magi 用戶。

  1. # setfacl -Rm u:magi:rwx /etc/apache2/sites-available/

其中:

  • -R: 遞歸到子目錄中

再次查看一下新的 ACL 值。

  1. # getfacl /etc/apache2/sites-available/
  2.  
  3. # file etc/apache2/sites-available/
  4. # owner root
  5. # group root
  6. user::rwx
  7. user:magi:rwx
  8. group::r-x
  9. mask::rwx
  10. other::r-x
  11.  

現在 /etc/apache2/sites-available/ 中的文件和目錄都設置了 ACL。

  1. # ls -lh /etc/apache2/sites-available/
  2. total 20K
  3. -rw-rwxr--+ 1 root root 1.4K Sep 19 14:56 000-default.conf
  4. -rw-rwxr--+ 1 root root 6.2K Sep 19 14:56 default-ssl.conf
  5. -rw-rwxr--+ 1 root root 1.4K Dec 8 02:57 mywebpage.com.conf
  6. -rw-rwxr--+ 1 root root 1.4K Dec 7 19:07 testpage.com.conf 

如何為組設置 ACL

以下面格式為指定文件運行 setfacl 命令。在下面的例子中,我們會給 appdev 組賦予 /etc/apache2/apache2.conf 文件的 rwx 權限。

  1. # setfacl -m g:appdev:rwx /etc/apache2/apache2.conf

其中:

  • g: 指明一個組

對多個用戶和組授權,只需要用 逗號 區分開,就像下面這樣。

  1. # setfacl -m u:magi:rwx,g:appdev:rwx /etc/apache2/apache2.conf 

如何刪除 ACL

以下面格式運行 setfacl 命令會刪除文件對指定用戶的 ACL。這只會刪除用戶權限而保留 mask 的值為只讀。

  1. # setfacl -x u:magi /etc/apache2/apache2.conf

其中:

  • -x: 從文件的 ACL 中刪除

再次查看 ACL 值。在下面的輸出中我們可以看到 mask 的值是讀。

  1. # getfacl /etc/apache2/apache2.conf
  2.  
  3. # file etc/apache2/apache2.conf
  4. # owner root
  5. # group root
  6. user::rw-
  7. group::r--
  8. mask::r--
  9. other::r--

使用 -b 來刪除文件中所有的 ACL。

  1. # setfacl -b /etc/apache2/apache2.conf

其中:

  • -b: 刪除所有的 ACL 條目

再次查看刪掉后的 ACl 值就會發現所有的東西都不見了,包括 mask 的值也不見了。

  1. # getfacl /etc/apache2/apache2.conf
  2.  
  3. # file etc/apache2/apache2.conf
  4. # owner root
  5. # group root
  6. user::rw-
  7. group::r--
  8. other::r-- 

如何備份并還原 ACL

下面命令可以備份和還原 ACL 的值。要制作備份, 需要進入對應的目錄然后這樣做(假設我們要備份 sites-available 目錄中的 ACL 值)。

  1. # cd /etc/apache2/sites-available/
  2. # getfacl -R * > acl_backup_for_folder

還原的話,則運行下面命令:

  1. # setfacl --restore=/etc/apache2/sites-available/acl_backup_for_folder 
責任編輯:龐桂玉 來源: Linux中國
相關推薦

2014-05-26 09:50:19

訪問控制列表ACL文件保護

2014-05-06 13:40:57

Linux ACL集體權限

2017-03-17 11:30:04

LinuxSSH目錄

2013-04-10 13:28:52

Linux命令

2017-05-10 15:16:29

Linux系統目錄讀寫指定目錄

2017-05-08 17:20:01

Linux指定目錄讀寫權限

2014-04-24 09:51:47

Linux管理員ACL集體權限

2011-04-06 17:30:46

ACL

2009-07-30 21:22:02

ACL限制外界訪問網絡安全

2013-05-14 10:37:10

AIR Android設置訪問權限

2010-04-23 14:01:41

特殊訪問權限

2011-03-01 09:29:45

vsftpd用戶目錄

2023-02-16 08:34:01

2009-06-11 13:46:38

用戶訪問權限GlassFish

2010-10-14 10:43:03

MySQL用戶權限

2023-12-06 21:50:40

2021-12-27 10:56:10

MySQL數據庫命令

2010-04-23 16:51:44

Aix ACL

2009-10-29 15:56:12

Oracle用戶權限視

2010-09-01 16:43:26

Squid ACLSquid訪問列表Squid
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人在线精品视频 | 国产剧情一区 | 久久在线看 | 日韩精品在线免费观看视频 | 精品日韩一区二区 | 午夜在线影院 | 精品综合久久 | 久久69精品久久久久久久电影好 | 久久www免费人成看片高清 | 男女激情网站免费 | 天堂va在线观看 | av中文字幕在线观看 | 精品视频在线免费观看 | 国产精品s色 | 久久久久久天堂 | 91免费在线 | 亚洲精彩免费视频 | 成年视频在线观看 | 亚洲精品日韩一区二区电影 | 久久久久久精 | 男女视频在线免费观看 | 国产亚洲精品美女久久久久久久久久 | 亚洲天堂中文字幕 | 国产精品久久久久久久久久久久午夜片 | 久久成人精品视频 | 欧美日韩国产高清 | 狠狠色香婷婷久久亚洲精品 | 国产欧美精品区一区二区三区 | 91 在线 | 成人在线精品 | 国产偷录叫床高潮录音 | 久久久久国产一区二区三区四区 | 天堂av中文| 天天操天天摸天天爽 | 麻豆久久久久 | 亚洲毛片在线观看 | 亚洲精品乱码久久久久久久久 | 在线亚洲欧美 | 亚洲高清久久 | 色婷婷av一区二区三区软件 | 欧美日韩一二三区 |