1. 파일 및 디렉터리 권한
1.1. 소유권 & 허가권 확인 방법
1.1.1 파일 유형 종류
- d : 디렉토리
- b : 블록 디바이스 파일
- c : 문자 디바이스 파일
- l : 심볼릭 링크 파일
- p : 명명된 파이프
- s : 유닉스 도메인
- - : 일반(정규) 파일
1.1.2. 허가권(permission)
- 각 파일에 접근해서 읽거나 쓰거나 실행할 권리를 사용자/그룹/다른사용자로 나눠서 관리
- user : 파일을 만든 소유주
- group : 파일을 만든 소유주가 속한 그룹의 사용자
- other : 기타 사용자
문자 값 파일 디렉터리 r(4) 파일에 대한 읽기 권한. 열기, 읽기 허용 디렉터리 내의 파일을 나열할 수 있게 허용 w(2) 파일에 대한 쓰기 권한. 쓰기, 잘라내기 허용 디렉터리 내의 파일들을 생성, 삭제, 이름 변경이 가능하도록 허용 x(1) 파일에 대한 실행 권한 디렉터리 내에서 탐색을 위해 이동할 수 있도록 허용 - r,w,x에 대한 권한이 없음을 표시
1.1.3. 소유권(ownership)
- 각 파일이나 디렉터리를 소유할 사용자나 그룹 지정
1.2. 소유권 & 허가권 변경 방법
1.2.1. 허가권 변경 $ chmod
- 미션 숫자
8진수 | 2진수 | 권한 | 의미 |
0 | 000 | --- | 아무 권한 없음 |
1 | 001 | --x | 실행 권한만 있음 |
2 | 010 | -w- | 쓰기 권한만 있음 |
3 | 011 | -wx | 쓰기,실행 권한 있음 |
4 | 100 | r-- | 읽기 권한만 있음 |
5 | 101 | r-x | 쓰기,실행 권한 있음 |
6 | 110 | rw- | 읽기,쓰기 권한 있음 |
7 | 111 | rwx | 모든 권한 있음 |
# 사용자는 읽기,쓰기(4+2) 권한 부여하고,
# 그룹과 다른사용자는 읽기(4) 권한만 부여
$ chmod 644 myfile.txt
# 권한 전부 주기
$ chmod 777 test.txt
- 기호 문자
- 읽기 r
- 쓰기 w
- 실행 x
- 권한 추가 +
- 권한 삭제 -
- 권한 지정 =
- 사용자 허가권 u
- 그룹 허가권 g
- 다른 사용자 허가권 o
- 모두 a
# 파일에 대하여 사용자(u)에 읽기 및 쓰기(rw)권한으로 초기화(=) $ chmod u=rw myfile.txt # 파일에 모두(a)에게 읽기,쓰기(rw) 권한으로 초기화(=) $ chmod a=rw file.txt # test.txt 의 소유자(u)에게 읽기(r) , 쓰기(w) 권한을 추가 부여(+) $ chmod u+rw test.txt # test.txt 의 소유그룹(g)에게 쓰기(w) 권한을 제거(-) $ chmod g-w test.txt # 그외 계정에게 모든 권한을 제거(-) # rwx의 순서는 변경하여도 무방하다. o-rwx = o-wxr $ chmod o-wxr test.txt
- 옵션
- -R : 특정 디렉터리 내의 파일과 디렉터리에 대해 재귀적으로 허가권 변경
- -C : 변경된 파일이나 디렉터리에 대한 자세한 정보를 출력
- -f : 대부분의 에러메시지 출력을 제한
- -reference : 모드 대신 파일에 지정한 모드를 사용
- -t : sticky bit 설정하는 옵션
# 디렉터리 이하의 모든 파일과 디렉터리에 대해 (-R)
# 사용자는 읽기, 쓰기, 실행(4+2+1) 권한을 부여하고 ,
# 그룹과 다른 사용자는 읽기 및 실행(4+1) 권한 부여
$ chmod -R 755 myfiles
1.2.2. 사용자 및 그룹 소유권 변경 $ chown
- 루트 사용자만 가능
- 옵션은 허가권과 동일
$ chown [options] owner:[group] files
# test.txt 파일을 소유자를 root로
$ chown root test.txt
# 사용자는 myuser 그룹은 mygroup으로 파일 소유자 변경
$ sudo chown myuser:mygroup myfile.txt
# myfiles 디렉터리 이하 모든 파일 및 디렉터리에 대하여 사용자는 myuser, 그룹은 mygroup으로 소유자 변경
$ sudo chown -R myuser:mygroup myfiles
1.2.3. 그룹 소유권만 변경 $ chgrp
# 본인이 소유한파일에 대해 자신의 그룹내 소유권 변경
$ chgrp [options] group file
# test.txt 파일의 소유그룹을 hansgroup로
$ chgrp hansgroup test.txt
# 디렉터리 이하 모든 파일과 디렉터리에 대해 그룹을 colors로 변경
$ chgrp -R colors color_files
1.2.4. 기본 허가권 변경 $ umask
- 시스템상 파일이나 디렉터리를 생성할 때 자동으로 기본 허가권이 부여됨
- 파일 : 666 / 디렉터리 : 777
- 계산 방법
- 파일이나 디렉터리 생성 시 기본값에서 umask에 설정된 마스크 값을 뺀 결과값을 허가권으로 지정
umask [option][mask]
# 옵션 -S : umask 값을 숫자대신 문자로 표기
# 현재 umask 값 확인
$ umask
0002
# 문자로 현재 umask값 확인
$ umask -S
u=rwx,g=rwx,o=rx
# umask 설정시 문자 사용하여 설정가능
$ umask u=rwx,g=rwx,o=rx
1.3. 리눅스 파일 특수 권한
1.3.1. Set-UID
- 4000
- 해당 사용자의 권한이 아닌 파일의 소유자 권한으로 실행
1.3.2. Set-GID
- 2000
- 사용자의 그룹이 아닌 해당 파일의 그룹으로 실행
1.3.3. sticky bit
- 디렉터리에만 설정 가능
- 1000
- 누구나 접근 가능한 디렉터리 (삭제는 오직 소유자만 가능)
참고 문헌
https://inpa.tistory.com/entry/LINUX-📚-파일-권한-소유권허가권-💯-정리
'자격증 & 공부 > 리눅스마스터 1급' 카테고리의 다른 글
[리눅스마스터 1급 - 2차] 파일 시스템 (0) | 2024.10.24 |
---|---|
[리눅스마스터 1급 - 2차] 파일 속성 (0) | 2024.10.24 |
[리눅스마스터 1급 - 2차] 파일 링크 (하드 링크 / 심볼릭 링크 / inode) (0) | 2024.10.23 |
[리눅스마스터 1급 - 2차] 사용자/그룹 계정 관리 (0) | 2024.10.23 |
[리눅스마스터 1급] 필기 시험 후기 (0) | 2024.09.09 |