簡介
Hadoop從2.4.0版本開始支持hdfs的ACL
ACL(Access Control Lists)
基本命令操作:
hdfs dfs -getfacl [-R] ?獲取目錄和文件的ACL 信息
hdfs dfs -setfacl [-R] [-b |-k -m |-x ] |[--set ] ?設(shè)置文件和目錄的ACL信息
hdfs dfs -ls 當(dāng)ls的權(quán)限位輸出以+結(jié)束時震檩,那么該文件或目錄正在啟用一個ACL蜓堕。
配置信息
機制和測試
hdfs 默認是開啟文件訪問權(quán)限的,按照rwx 來進行判斷是否有讀寫執(zhí)行權(quán)限迂猴。然后根據(jù)用戶擁有者背伴, 同組用戶, 非同組用戶 來進行權(quán)限管理
我們可以通過bash -c users ?和 bash -c groups 獲取用戶 和 組
(1) 創(chuàng)建文件
echo "hell" > 1.txt
hadoop fs -mkdir /acl; hadoop fs -put 1.txt /acl
(2) 更改用戶組 和 權(quán)限
創(chuàng)建文件和目錄的時候默認組為supergroup息尺, 文件夾的權(quán)限是755 崎逃,文件的權(quán)限是644.
hadoop fs -chmod -R 750 ?/acl
hadoop fs -chown -R bfd_hz:bfd_hz /acl
(3) 用戶擁有者,同組用戶眉孩, 非同組用戶測試勒葱。
用戶和組的創(chuàng)建省略巴柿, 測試的過程中三個用戶 bfd_hz ? baseline ? wenting , ? bfd_hz 和 wenting 是同組用戶,
baseline 單獨一個組凯旋, 文件的由bfd_hz 創(chuàng)建钉迷,權(quán)限如下:
(4) ACL讓非同組的用戶也能訪問此文件
注意點:用戶名和組 要和 hadoop 上面的組對應(yīng)糠聪, 比如默認創(chuàng)建的文件組是supergroup,
如果不設(shè)置成bfd_hz, wenting此時操作文件也不能執(zhí)行舰蟆,user -c groups 是bfd_hz, 和 supergroup不相等。 此時就導(dǎo)致不屬于同組用戶
關(guān)于一個文件的組關(guān)系:如果根目錄味悄,沒有繼承來源塌鸯,默認supergroup, 如果是子目錄丢习,繼承父目錄的組
其他話題-->hive 中創(chuàng)建表的時候權(quán)限和組問題:https://cwiki.apache.org/confluence/display/Hive/Permission+Inheritance+in+Hive
參考資料:https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsPermissionsGuide.html