LabHub
学习 学习路径 课程

Apache Hadoop — HDFS 와 YARN 을 한 파드에 세우고 운영한다 · 권한과 사용자 · 实验

재무 폴더를 한 팀에만 열고 다른 사람에게 읽기만 준다

在 LabHub 中继续学习

목표

재무 폴더를 alice 와 finance 그룹만 쓰게 잠그고, bob 이 거절되는 것을 본 뒤 ACL 로 bob 에게 읽기만 연다. 기본 ACL 로 새 파일에도 그 권한이 이어지게 하고, 모두가 쓰는 폴더에서 남의 파일을 지우지 못하게 하는 스티키 비트를 시험한다. 마지막으로 단순 인증이 무엇을 믿는지 정리한다.

왜 중요한가

HDFS 의 권한 모델은 POSIX 와 거의 같다 — 파일과 디렉터리마다 소유자·그룹·권한 비트가 있고, 디렉터리 안을 보려면 그 디렉터리의 실행(x) 권한이 필요하다. 다른 점은 누가 누구인지를 누가 정하느냐다. 기본 설정(simple 인증)에서 NameNode 는 클라이언트가 보낸 사용자 이름을 그대로 믿는다. HADOOP_USER_NAME=root 한 줄이면 누구나 슈퍼유저다. 이 실습이 사용자를 바꿔 가며 시험할 수 있는 것도 그 때문이다.
그래서 권한 비트와 ACL 은 '실수로 남의 자료를 건드리지 않게 하는 울타리' 이지 보안 경계가 아니다. 보안 경계가 필요하면 Kerberos 로 인증을 강제해야 한다.
울타리로서의 권한은 여전히 중요하다. 팀마다 폴더를 나누고, 다른 팀에게는 필요한 만큼만 ACL 로 열고, 모두가 쓰는 임시 폴더에는 스티키 비트를 걸어 남의 파일을 지우지 못하게 한다. 기본 ACL 을 걸지 않으면 새로 생기는 파일에는 권한이 이어지지 않아 '어제는 되던 것이 오늘 파일에서는 안 된다' 는 문의가 온다.

단계

1. root 로 /proj/finance 를 만들고 소유자를 alice:finance, 권한을 750 으로 두세요.
2. HADOOP_USER_NAME=alice/data/finance/q1.csv/proj/finance/ 에 올리세요.
3. HADOOP_USER_NAME=bob 으로 /proj/finance/q1.csv-cat 해 보고, 오류 출력을 /root/hdp/perm/bob_denied.txt 에 저장하세요.
4. alice 로 bob 에게 ACL 을 주세요 — /proj/financeuser:bob:r-x, /proj/finance/q1.csvuser:bob:r--.
5. bob 으로 q1.csv 를 읽어 줄 수를 세고 /root/hdp/perm/bob_lines.txt 에 정수로 적으세요.
6. alice 로 /proj/finance 에 기본 ACL default:user:bob:r-- 를 걸고, /data/finance/q2.csv/proj/finance/ 에 올리세요. 새 파일에 bob 의 ACL 이 이어져야 합니다.
7. root 로 /proj/shared 를 만들어 1777(스티키 비트)로 두고, alice 로 /data/finance/q1.csv/proj/shared/alice-q1.csv 로 올린 뒤, bob 으로 그것을 -rm -skipTrash 해 보고 오류 출력을 /root/hdp/perm/sticky.txt 에 저장하세요.
8. /root/hdp/perm/report.md## 소유자와 권한 ## ACL ## 단순 인증의 한계 세 절을 쓰세요. 둘째 절에 5단계의 줄 수를, 셋째 절에 HADOOP_USER_NAMEKerberos 를 넣으세요.

참고

8个步骤

  1. 팀 폴더를 잠그기
  2. alice 로 올리기
  3. bob 은 거절된다
  4. ACL 로 한 사람에게만 열기
  5. 이제 bob 이 읽는다
  6. 기본 ACL — 새 파일에도 이어지게
  7. 스티키 비트 — 모두의 폴더에서 남의 파일 지키기
  8. 울타리와 자물쇠를 구분해 남기기