HDFS權限
阿新 • • 發佈:2017-08-08
isa 規則 5-0 關閉 mod mas 修改 container 拒絕
1.1 超級用戶
啟動namenode服務的用戶就是超級用戶, 該用戶的組是supergroup
1.2 文件權限管理
1.2.1 創建時的owner和group
文件或者目錄被創建之時,服從BSD規則,owner是客戶端進程的用戶,group是父目錄的group
1.2.2 訪問權限說明
object | r | w | x | stick 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
- 修改input目錄的owner為lisa,group從supergroup改為input
$ hdfs dfs -chown lisa:input /input
- 修改/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目錄
- 先要設置目錄權限,讓input組用戶都能讀,寫,執行該目錄
$ hdfs dfs -chmod -R g+w /input/qoros
- 然後在客戶機上
- 創建guoqiang帳號和組input
useradd guoqiang groupadd input
- 改guoqiang用戶組為input
usermod -g input guoqiang
在namenode所在的服務器上添加相同的用戶和組,這點很奇怪,如果不這麽幹寫操作會被拒絕,這會造成麻煩,因為兩個namenode節點都要這麽幹
useradd guoqiang usermod -g input guoqiang
- 先要設置目錄權限,讓input組用戶都能讀,寫,執行該目錄
- 取消其他用戶的所有權限
$ 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權限