KOREA IT LINUX 과정
리눅스 일곱 번째 시간
<< 리눅스 퍼미션 >>
1. 퍼미션
- 리눅스 사용자들이 디렉토리 및 파일에 대한 '읽기', '쓰기', '실행', '거부' 권한 의미

1) 읽기 권한
- 의미 : 파일 및 디렉토리 안에 있는 내용을 확인 시에 필요
- 파일 X : 'cat', more', 'less', 'head', 'tail', 'vi' 명령어로 파일 내용 확인 불가
- 디렉토리 X : 'ls' 명령어를 이용하여 디렉토리 안에 내용 확인 불가
→ 파일 읽기 권한
→ 디렉토리 읽기 권한
2) 쓰기 권한
- 의미 : 파일 안 내용을 수정하거나 디렉토리 안에 있는 파일 및 디렉토리 수정 시 필요
- 파일 X : 편집기(Vi, vim, gedit), 출력재지정(2, 22)을 이용 및 수정 불가
- 디렉토리 X : 디렉토리 안에 있는 파일과 디렉토리 생성, 삭제, 이름변경, 복사 불가
→ 파일 쓰기 권한
→ 디렉토리 쓰기 권한

3) 실행 권한
- 파일을 실행하려면 파일의 실행 권한 필요
- 파일 X : 실행 불가 / 스크립트 파일 - 쉘(sh, bash, source..)을 이용하여 실행
- 디렉토리 X : 'cd' 명령어로 해당 디렉토리에 접근불가, 상대 • 절대 경로 지정 불가
→ 파일 실행 권한
→ 디렉토리 실행 권한
4) 퍼미션 표기 및 해석
- 퍼미션 표기 및 해석 방법
→ rwx : 소유자(owner) - 파일의 소유자는 'testfile'에 읽기/쓰기/실행 권한이 있음
→ rw : 그룹(group) - 같은 그룹의 사용자는 'testfile'에 읽기/쓰기 권한만 있음
→ r : 다른사용자(other) - 다른 사용자는 'testfile'에 읽기 권한만 있음




2. 'chmod'명령어
- 파일 및 디렉토리 권한을 변경하는 명령어이다.
권한 설정 모드는 심볼릭 모드와 수치모드 2가지 방식을 제공한다.
1) 심볼릭 모드
- 사용자 심볼릭, 권한 심볼릭, 설정 심볼릭을 이용하여 파일과 디렉토리에 권한을 설정하는 형식



→ 심볼릭 모드 예시
→ 등호는 치환!
2) 수치모드
- 소유자, 그룹, 다른 사용자 권한 수치를 입력하여 파일과 디렉토르에 권한을 설정하는 방식이다. 8진수(0~7)를 이용하여 권한을 설정하여 읽기/쓰기/실행 권한 수치는 각각 '4', '2', '1' 을 사용한다.


→ 수치 모드 예시
3. 파일과 디렉토리 퍼미션 이해
1) 파일 퍼미션

2) 디렉토리 퍼미션

3) 파일 내용을 수정 할 경우에 필요한 권한
- 파일 내용을 수정하려면 파일의 '쓰기' 권한 필요
- 파일 내용을 보면서 수정해야 하기 때문에 파일의 '읽기' 권한 필요
- 파일이 위치한 디렉토리에 접근해야 하기 때문에 디렉토리의 '실행' 권한 필요
- 디렉토리 안에 파일이 있는지 확인해야 하기 때문에 디렉토리의 '읽기' 권한 필요

4) 파일을 삭제할 경우에 필요한 권한
- 파일을 삭제하려면 파일이 위치한 디렉토리의 쓰기' 권한 필요
- 파일이 해당 디렉토리에 있는지 확인해야 하므로 디렉토리의 '읽기' 권한 필요
- 파일이 위치한 디렉토리에 접근해야 하기 때문에 디렉토리의 실행' 권한 필요
- 파일의 권한은 어떻게 설정되어 있든 상관없음!

4. SetUID/SetGID
- 권한이 설정된 파일을 실행하면 파일의 소유자 권한을 할당해주는 특수 권한
- 'A'라는 실행 파일의 소유자가 root 계정이고 'SetUID' 권한이 설정되어 있다면
user1 계정이 'A' 파일을 실행하면 root 권한을 할당 받는 것임 (소유권 임대)
1) 'SetUID' 이해
- root 계정은 'usermod' 실행 파일에 대한 '실행'권한이 있기 때문에 user1 계정의 쉘 변경 가능
- 권한상상 공격에 악용되는 경우 많음

→ 이러한 과정이 되는 이유 : setUID 덕분


2) 'SetUID' 권한이 설정된 리눅스 실행파일 검색
3) SetUID/SetGID 설정 방법
- 'SetUID/SetGID' 를 실행하려면 실행(X)권한이 있어야 함

→ SetUID 한 상태에서 권한 삭제한다면 삭제된 권한 '대문자'로 표기



8. Sticky bit
- 'Sticky bit' 권한이 설정된 디렉토리는 모든 계정들이 파일과 디렉토리를 생성, 삭제, 수정이 가능
- 소유자가 아닌 파일과 디렉토리를 삭제하거나 수정할 수 없게 하는 특수 권한
- Sticky bit' 권한은 디렉토리 기본 퍼미션이 777'인 경우 사용 가능

1) Sticky bit 설정 방법

→ 실제 Sticky bit 가 설정되어있는 것 : 'tmp'


2) Sticky bit 설정 예시

