LabHub

리눅스 기초 · 권한과 사용자 · 실습

권한·사용자·그룹 다루기

LabHub 에서 이어서 보기

목표

사용자와 그룹을 만들고, 공유 디렉터리에 필요한 특수 비트를 걸고, 권한이 기대대로인지 스스로 점검하는 스크립트까지 만듭니다.

왜 중요한가

권한 사고의 대부분은 "파일 권한"만 보고 "디렉터리 권한"을 잊어서 생깁니다. 파일을 지우는 데 필요한 것은 그 파일에 대한 쓰기 권한이 아니라 그 파일이 들어 있는 디렉터리에 대한 쓰기 권한입니다. 그래서 읽기 전용 파일도 남이 지울 수 있고, 유닉스는 그 구멍을 막으려고 sticky 비트를 따로 뒀습니다. 같은 이유로 여러 사람이 쓰는 디렉터리에는 setgid 가 필요합니다 - 안 걸면 각자 자기 기본 그룹으로 파일을 만들어 서로 못 읽는 상황이 반복됩니다.

단계

1. /root/secret.txt 를 만들고 권한을 600 으로 맞추세요.
2. student1 사용자를 만드세요.
3. devs 그룹을 만들고 student1 을 그 그룹에 넣으세요(기존 그룹은 유지).
4. /root/shared/report.txt 를 만들고 소유자:그룹을 student1:devs 로 바꾸세요.
5. /root/shared 디렉터리의 그룹을 devs 로 하고 권한을 2770 으로 맞추세요.
6. /root/shared/incoming 디렉터리를 만들고 권한을 1777 로 맞추세요.
7. /root/shared/run.sh 를 만들고 권한을 750 으로 맞추세요.
8. /root/shared/checkmode.sh <파일경로> <기대권한> 을 만드세요. 실행 권한이 있어야 하고, 권한이 일치하면 종료 코드 0, 다르면 0이 아닌 코드로 끝나면서 현재 권한을 출력해야 합니다. 파일이 없을 때도 0이 아닌 코드여야 합니다.

참고

단계 8개

  1. 비밀 파일 권한 잠그기
  2. 사용자 만들기
  3. 그룹 만들고 사용자 넣기
  4. 소유자와 그룹 바꾸기
  5. 공유 디렉터리에 setgid 걸기
  6. 업로드 디렉터리에 sticky 걸기
  7. 실행 스크립트 권한 정리
  8. 권한 점검 스크립트 만들기