日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用POSIX ACL進行權限管理

本文介紹在使用NFS v3協議掛載的文件系統上,如何設置POSIX ACL來進行文件和目錄權限管理。

前提條件

已使用NFS v3協議掛載文件系統。具體操作,請參見掛載NFS協議文件系統

命令說明

在設置POSIX ACL前,請先熟悉相關操作命令。

命令

說明

getfacl <filename>

查看文件當前的ACL。

setfacl -m g::w <filename>

給GROUP設置寫權限。

setfacl -m u:player:w <filename>

給用戶player設置寫權限。

setfacl -m g:players:rwx <filename>

給用戶組players設置讀寫執行權限。

setfacl -x g:players <filename>

刪除用戶組players的權限。

getfacl file1 | setfacl --set-file=- file2

將文件file1的ACL復制到文件file2上。

setfacl -b file1

刪除文件file1上的所有非mode的ACE。

setfacl -k file1

刪除文件file1上的所有default的ACE。

setfacl -R -m g:players:rw dir

對目錄樹dir下的文件和目錄增加用戶組players讀寫的權限。

setfacl -d -m g:players:rw dir1

用戶組players對目錄dir1下新創建的文件和目錄都有讀寫權限。

操作步驟

您可以參考以下步驟,為目錄或文件設置NFS ACL實現權限管理。

  1. 創建用戶和群組。

    本示例假設創建普通用戶player,屬于普通用戶群組players;管理員admini,屬于管理員群組adminis;另外再創建一個用戶anonym。

    sudo useradd player
    sudo groupadd players
    sudo usermod -g players player
    sudo useradd admini
    sudo groupadd adminis
    sudo usermod -g adminis admini
    sudo useradd anonym
  2. 對目錄和文件設置POSIX ACL實現權限管理。

    本示例假設創建目錄dir0,針對目錄dir0中的所有文件,授予players只讀權限,授予adminis讀寫執行權限,不授予其他用戶權限。

    sudo umask 777
    sudo mkdir dir0
    sudo setfacl -m g:players:r-x dir0
    sudo setfacl -m g:adminis:rwx dir0
    sudo setfacl -m u::--- dir0
    sudo setfacl -m g::--x dir0
    sudo setfacl -m o::--- dir0
    sudo setfacl -d -m g:players:r-x dir0
    sudo setfacl -d -m g:adminis:rwx dir0
    sudo setfacl -d -m u::--- dir0
    sudo setfacl -d -m g::--x dir0
    sudo setfacl -d -m o::--- dir0

    設置完成后,可執行sudo getfacl dir0查看設置結果。

    # file: dir0
    # owner: root
    # group: root
    user::---
    group::--x
    group:players:r-x
    group:adminis:rwx
    mask::rwx
    other::---
    default:user::---
    default:group::--x
    default:group:players:r-x
    default:group:adminis:rwx
    default:mask::rwx
    default:other::---
  3. 驗證ACL設置結果。

    1. 驗證用戶admini具有讀寫權限。

      sudo su admini -c 'touch dir0/file'
      sudo su admini -c 'echo 123 > dir0/file'
    2. 驗證用戶player具有只讀權限。

      1. 驗證無創建file文件的權限。

        例如,在dir0目錄下創建file文件。

        • 執行命令

          sudo su player -c 'touch dir0/file'
        • 如果返回如下類似信息,則表示用戶player無創建file文件的權限。

          touch: cannot touch ‘dir0/file’: Permission denied
      2. 驗證查看dir0/file文件內容。

        • 執行命令

          sudo su player -c 'cat dir0/file'
        • 如果返回如下信息,則表示用戶player具有查看dir0/file文件內容的權限。

          123
      3. 驗證寫權限。

        • 執行命令

          sudo su player -c 'echo 456 >> dir0/file'
        • 如果返回如下信息,則表示用戶player無寫權限。

          bash: dir0/file: Permission denied

        您還可以通過執行sudo su player -c 'getfacl dir0/file'命令,查看用戶player對dir0/file的權限。

        # file: dir0/file
        # owner: admini
        # group: adminis
        user::---
        group::---
        group:players:r-x
        group:adminis:rwx
        mask::rwx
        other::---
    3. 驗證用戶anonym無權限。

      1. 驗證無權限查看dir0目錄下的文件。

        • 執行命令

          sudo su anonym -c 'ls dir0'
        • 如果返回如下信息,則表示用戶anonym無權限訪問。

          ls: cannot open directory dir0: Permission denied
      2. 驗證無權限查看file文件的內容。

        • 執行命令

          sudo su anonym -c 'cat dir0/file'
        • 如果返回如下信息,則表示用戶anonym無權限查看file文件的內容。

          cat: dir0/file: Permission denied
      3. 驗證無權限訪問file文件。

        • 執行命令

          sudo su anonym -c 'getfacl dir0/file'
        • 如果返回如下信息,則表示用戶anonym無權限訪問file文件。

          getfacl: dir0/file: Permission denied

相關操作

如果您要移除用戶權限,可參見以下方法。

建議在使用NFS v4 ACL時,盡量把每個用戶歸類到群組中。在設置NFS v4 ACL時直接設置群組權限而不用設置單個用戶的權限。這樣在移除用戶權限時只需把用戶移出某個群組即可。例如:見以下命令將用戶admini移出群組adminis,移入群組adminis2。

  1. 創建adminis2群組。

    sudo groupadd adminis2
  2. 將用戶admini移出群組adminis,移入群組adminis2。

    sudo usermod -g adminis2 admini
  3. 查詢用戶ID權限。

    • 執行命令

      id admini
    • 返回信息

      uid=1057(admini) gid=1057(admini) groups=1061(adminis2)
  4. 驗證用戶admini具備的權限。

    1. 驗證無權限訪問dir0目錄。

      • 執行命令

        sudo su admini -c 'ls dir0'
      • 如果返回以下信息,則表示用戶admini無權限訪問dir0目錄。

        ls: cannot open directory dir0: Permission denied
    2. 驗證用戶admini無權限查看dir0/file文件的內容。

      • 執行命令

        sudo su admini -c 'cat dir0/file'
      • 如果返回以下信息,表示用戶admini無權限查看dir0/file文件的內容。

        cat: dir0/file: Permission denied
    3. 驗證用戶admini無權限訪問dir0/file

      • 執行命令

        sudo su admini -c 'getfacl dir0/file'
      • 如果返回以下信息,表示用戶admini無權限訪問dir0/file

        getfacl: dir0/file: Permission denied