1. 程式人生 > >HDFS權限

HDFS權限

isa 規則 5-0 關閉 mod mas 修改 container 拒絕

1.1 超級用戶

啟動namenode服務的用戶就是超級用戶, 該用戶的組是supergroup

1.2 文件權限管理

1.2.1 創建時的owner和group

文件或者目錄被創建之時,服從BSD規則,owner是客戶端進程的用戶,group是父目錄的group

1.2.2 訪問權限說明

objectrwxstick bit(restricted deletion flag)
file 讀文件 寫或者追加寫文件 無效
directory 列出目錄的內容 創建或者刪除子文件或子目錄 訪問子文件或者子目錄 阻止移動或者刪除該目錄內的文件或目錄(超級用戶,owner和group不會被stick bit阻止)

1.2.3 應用示例

  • 創建/input目錄,用於接收外部寫入的數據
    • input目錄的group也是input,owner是lisa(超級用戶),
    • 創建/input/dean目錄,用於接收dean用戶寫入的數據, owner是dean用戶,group用戶允許寫入數據
  • 創建目錄
    $ hdfs dfs -mkdir -p /input/dean  
    $ hdfs dfs -ls /
    Found 3 items
    drwxr-xr-x   - lisa supergroup          0 2015-11-08 17:26 /input
    drwxr
    -xr-x - lisa supergroup 0 2015-09-28 15:21 /test drwxr-xr-x - lisa supergroup 0 2015-11-08 17:09 /tmp $ hdfs dfs -ls /input Found 1 items drwxr-xr-x - lisa supergroup 0 2015-11-08 17:26 /input/dean

    • 修改input目錄的owner為lisa,group從supergroup改為input
    $ hdfs dfs -chown lisa:input /input
    
    $ hdfs dfs -ls / Found 3 items drwxr-xr-x - lisa input 0 2015-11-08 17:26 /input drwxr-xr-x - lisa supergroup 0 2015-09-28 15:21 /test drwxr-xr-x - lisa supergroup 0 2015-11-08 17:09 /tmp

    • 修改/input/dean目錄的ower和group都為dean
    $ hdfs dfs -ls /input
    Found 1 item
    drwxrwxr-x   - dean dean           0 2015-11-21 16:24 /input/dean

    註意,客戶機上創建linux 用戶dean,無需在namenode節點上創建該用戶

  • 允許input group用戶寫入/input/qoros目錄
    1. 先要設置目錄權限,讓input組用戶都能讀,寫,執行該目錄
      $ hdfs dfs -chmod -R g+w /input/qoros

    2. 然後在客戶機上
      • 創建guoqiang帳號和組input
      useradd guoqiang
      groupadd input

      • 改guoqiang用戶組為input
      usermod -g input guoqiang

      在namenode所在的服務器上添加相同的用戶和組,這點很奇怪,如果不這麽幹寫操作會被拒絕,這會造成麻煩,因為兩個namenode節點都要這麽幹

      useradd guoqiang
      usermod -g input guoqiang

  • 取消其他用戶的所有權限
    $ hdfs dfs -chmod -R o-r /input/dean
    $ hdfs dfs -ls /input
    Found 1 items
    drwxrwx--x   - lisa supergroup          0 2015-11-08 17:26 /input/dean
    $ hdfs dfs -chmod -R o-x /input/dean
    $ hdfs dfs -ls /input
    Found 1 items
    drwxrwx---   - lisa supergroup          0 2015-11-08 17:26 /input/dean

1.3 POSIX ACLs(目前尚未使用)

為特定的用戶和組提供細致粒度的權限管理, 而不只是owner,group。該功能默認關閉, 需要如下設置打開

dfs.namenode.acls.enabled true

具體配置實在hdfs-site.xml中

<property> 
<name>dfs.permissions.enabled</name> 
<value>true</value> 
</property>


<property> 
<name>dfs.namenode.acls.enabled</name> 
<value>true</value> 
</property>

在core-site.xml設置用戶組默認權限.

<property>
<name>fs.permissions.umask-mode</name>
<value>002</value>
</property>

HDFS權限