카테고리 없음
[파일 명령어] Linux 파일 시스템의 퍼미션(Permission) 변경 명령어
엔지니어 은성
2021. 9. 15. 10:29
▶ 파일의 퍼미션 변경
사용방법
# chomod [mod] [파일 이름] ; 상대 모드 , 절대 모드를 통해 파일의 퍼미션 변경
▶ 상대 모드 (symbolick method )
기호 | 의미 |
u | user |
g | group |
o | other |
a | all |
+ | 추가 |
- | 삭제 |
= | 지정 |
s | 소유자 또는 그룹만 실행 |
r | 읽기 |
w | 쓰기 |
x | 실행 |
# chmod o+rw file1
# ls -l file1
# chomod a+x,g-r file1
# ls - l
▶ 절대 모드 (수로 표현) 777
소유자(user) | 그룹(group) | 나머지(other) | ||||||
r | w | x | r | w | x | r | w | x |
4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
2^2 | 2^1 | 2^0 | 2^2 | 2^1 | 2^0 | 2^2 | 2^1 | 2^0 |
▶ 절대 모드 예시
# rwxrw-r-- 764
소유자(user) | 그룹(group) | 나머지(other) | ||||||
r | w | x | r | w | x | r | w | x |
4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
2^2 | 2^1 | 2^0 | 2^2 | 2^1 | 2^0 | 2^2 | 2^1 | 2^0 |
4 | 2 | 1 | 4 | 2 | 4 |
▶ 특별한 퍼미션
- 리눅스 권한은 소유자, 그룹, 나머지 사용자 세부류로 나누며 각각 파일에 대한 권한을 읽기, 쓰기, 실행의 세 가지로 나타냄
- 관리자의 입장에서 시스템의 모든 사항을 고려해야 하기 때문에 특별한 권한을 사용하여 시스템 관리의 효율성을 높인다.
- SetUID 4000, SetGID 2000, sticky bit 1000
▶ SetUID(4000) 퍼미션
- 일반적으로 x 권한으로 실행되면 실행한 사용자의 권한으로 실행됨
- SetUID가 적용되면 파일이 실행되는 동안 실행한 사용자가 아닌 파일의 소유자 권한을 부여하게 된다.
- 소유자의 퍼미션 값에 실행 권한에 x가 아닌 s로 명시
- passwd를 변경하는 과정에서 /etc/shadow 파일의 내용을 읽거나 쓸 수 있어야 변경한 패스워드를 기록할 수 있기 때문에 passwd 파일에는 SetUID가 걸려있고 소유자가 root로 설정되어있음
절대 모드 + 4000 - > 실행한 사용자 권한으로 실행됨
▶ SetGID 퍼미션 (2000)
- 파일 실행되는 동안 그룹 소유주의 권한을 갖게 됩니다.
- 실행 파일뿐만 아니라 디렉터리에도 명시될 수 있음
- 적용되면 그룹 소유자의 퍼미션 값에 s로 표시됩니다
절대모드 755의 권한에 SetGID(2000) 권한 적용 dir-test 디렉터리 생성, 하위 디렉터리 dir2 생성 dir2 하위 디렉터리에 2755 권한 SetGID가 부여되어있는 것을 확인할 수 있음
▶ Sticky Bit(1000) 퍼미션
- 디렉터리에 부여되는 권한으로 모든 사용자가 읽고 쓰고 삭제가 가능하다.
- 단 삭제는 오로지 소유주만 가능하다.
- 권한이 적용되면 other 퍼미션의 실행 권한이 x가 아닌 t로 명시
- 대표적인 sticky bit가 적용된 디렉터리는 /tmp와 /var/tmp가 있음
▶ umask
- 현재 존재하지는 않지만 앞으로 생성될 파일, 디렉터리의 퍼미션을 설정하기 위한 Mask값을 설정하거나 확인하는 쉘 내부 명령어
▶umsk [옵션] [퍼미션]
umask값 | 000 | 001 | 002 | 022 |
파일의 기본권한 | 666 | 666 | 664 | 644 |
디렉토리 기본권한 | 777 | 776 | 775 | 755 |