- 리눅스는 파일에 무단으로 접근하는 것을 방지하고 보호하는 기능을 제공
- 사용자는 자신의 파일과 디렉토리 중에서 다른 사용자가 접근해도 되는 것과 그렇지 않은 것을 구분하여 접근 권한을 제한
- 파일 속성의 첫 번째 항목은 파일의 종류 표시
- -는 일반 파일을, d는 디렉토리를 의미
- file: 파일의 종류를 알려주는 명령
파일의 소유자와 그룹, 기타 사용자들이 파일에 대해 가지고 있는 접근 권한을 표시
하드 링크는 한 파일에 대해 여러 개의 파일명을 가질 수 있도록 하는 기능
리눅스에서 모든 파일은 소유자가 있음
- ls -l 명령에서 출력되는 그룹명은 파일이 속한 그룹
- 사용자가 속한 기본 그룹은 시스템 관리자가 사용자를 등록할 때 결정
- groups: 사용자가 속한 그룹을 알려주는 명령어
- 파일: 파일을 읽거나 복사 할 수 있다.
- 디렉토리: ls 명령으로 디렉토리 목록을 볼 수 있다.
- 파일: 파일을 수정-이동-삭제 할 수 있다.(파일이 포함된 디렉토리에 쓰기 권한이 있을 떄)
- 디렉토리: 파일을 생성하거나 삭제 할 수 있다.
- 파일: 파일을 실행 할 수 있다.(shell 스크립트나 실행파일의 경우)
- 디렉토리: cd 명령을 사용할 수 있다, 파일을 디렉토리로 이동하거나 복사 할 수 있다
-rwxrwxrwx (0123456789)
r -> 읽기 권한, 4의 값 가짐
w -> 쓰기 권한, 2의 값 가짐
x -> 실행 권한, 1의 값 가짐
0 -> 파일의 종류
1,2,3 -> user의 권한
4,5,6 -> group의 권한
7,8,9 -> othesr의 권한ex) -rw-r--r-- -> 0644
파일이나 디렉토리의 접근 권한을 변경한다
ex) chmod_test.sh user에게 실행권한 부여
chmod u+x chmod_test.sh
ex) others와 group에게 쓰기 권한 삭제
chmod go-w chmod_test.sh
ex) 전체 사용자에게 읽기, 실행권한 부여
chmod a=rx chmod_test.sh
ex) user에게 실행권한 부여하고 group과 others에게 쓰기 권한 부여
chmod u+x,go+w chmod_test.sh
ex) chmod_test.sh user에게 rwx, group에게 rw, others에게 r 권한 부여
chmod 764 chmod_test.sh
-> 7(4+2+1,rwx)6(4+2,rw)4(4,r)
- 리눅스에서는 파일이나 디렉토리를 생성할 때 기본 접근 권한이 자동적으로 설정
- 일반 파일의 경우 소유자는 rw, 그룹과 기타 사용자는 r
- 디렉토리의 경유 소유자는 rwx, 그룹과 기타 사용자는 r
1. 마스크 값은 파일이나 디렉토리 생성시 부여하지 않을 권한을 지정해 놓는 것
2. 마스크 값이 022 일 경우 --- -w- -w-, 즉 group과 others에 w 권한을 부여하지 않겠다는 것
-> 마스크로 생성된 파일이나 디렉토리의 권한 rwx r-x r-xumask 변경하기
umask 022
-> umask 가 022로 변경 됨
- 접근권한은 원래 4자리
- 생략된 맨 앞자리는 특수 접근 권한을 의미
- 맨 앞자리 숫자가 0이면 일반적인 접근권한이지만, 숫자가 1, 2, 4이면 특수 접근 권한 설정
1. SetUID
- 권한의 맨 앞자리가 4
- 해당 파일이 실행되는 동안에는 파일을 실행한 사용자의 권한이 아니라 파일 소유자의 권한으로 실행
- SetUID 가 설정되면 소유자의 실행권한에 S로 표시됨 -> -rwsr-x--x
- passwd 명령은 SetUID가 설정되어 있기 때문에 소유자인 root 권한으로 실행이 되어 암호 변경 가능
- 권한의 맨 앞자리가 2
- SetGID가 설정된 파일을 실행하면 해당 파일이 실행되는 동안에는 파일 소유 그룹의 권한으로 실행
- 권한의 맨 앞자리가 1
- 스티키 비트는 디렉토리에 설정
- 디렉토리에 스티키 비트가 설정되어 있으면 이 디렉토리는 누구나 파일을 생성 가능
- 파일은 파일을 생성한 계정으로 소유자가 설정되며, 다른 사용자가 생성한 파일은 삭제 불가
- /tmp 디렉토리가 대표적인 스티키 비트 권한 디렉토리