Computer Science/DevOps
[Linux] Permission and Ownership
카세우스
2026. 10. 19. 18:30
리눅스 시스템의 모든 파일과 디렉터리에는, Permission과 Ownership이 부여된다. 이때 파일 속성은 ls -l을 사용하여 확인 할 수 있다.

- rw-rw-r-- 1 rainyk users 22665 Feb/6/2026 coludflare~~
의 경우, 처음 글자는 파일 유형 -> rwxrwxrwx (read/write/execution) 권한 여부 -> 물리적 파일 -> 소유자명 -> 그룹명 -> 크기(바이트) -> 마지막 변경 시간 -> 파일 명 과 같이 해석할 수 있다.
이때 퍼일의 허가권이나 소유권을 설정하려면, chmod/chown/chgrp/umask등을 사용할 수 있겠다.
세부적으로 들어가자면....
1) 소유권과 관련 명령어
소유권은 임의의 파일 또는 디렉터리에 대해 사용자와 그룹들의 소유권한을 나타낸 것이다. 이때 그룹은 사용자들을 시스템 운영 특성에 따라 묶어 놓은 것이 될 것이고, 관련된 명령어로는 아래와 같은 것들이 있다.
chwon (option) owner(:그룹명) 파일명
: 이는 파일과 디렉터리의 사용자 소유권과 그룹 소유권을 변경(이전)한다.
chrgp (option) 그룹명 파일명
: 이는 change group을 줄인 명령어로, 파일이나 디렉터리의 그룹 소유권을 변경한다. 위와는 다르게 그룹 소유권만.
2) 허가권과 관련 명령어
위에서 본 명령어로 파일 유형과 허가권을 알 수 있다.
- 파일 허가권의 첫번째 자리는 파일 유형을 기호로 정의한다. 이때 파일은 일반 파일/디렉터리 파일/특수 파일로 나뉘게 된다. -의 경우 일반, d의 경우 디렉터리, 기타의 경우 b/c/l/p/s 등이 있다. (block/Char/Link/Pipe/Socket)
- 파일 허가권의 두번째 자리에서 열번째 자리는 파일 접근 권한을 정의하게 된다. 일단 리눅스는 사용자 별로 파일 권한을 부여하게 되고, 파일 권한에는 각각 read/write/group가 있다. 제한 표시는 -으로 나타내고, 사용자별 권한은 symbolic or numeric하게 나타나게 되는데 뭔소리냐면...
| 사용자 권한 | 그룹 권한 | 기타 사용자 권한 | |||||||
| 기호 모드 | r | w | x | r | w | x | - | - | - |
| 8진수 | 4 | 2 | 1 | 4 | 2 | 1 | 0 | 0 | 0 |
| 2진수 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
과 같이 사용하게 된다 이말이다.
chmod 숫자 (option) 파일명
: 파일이나 디렉터리의 접근 허가권을 변경하는 명령어가 되시겠다. 8진수로 쓰던 아니면 기호 모드로 쓰던(예: u+w) 하면 된다.
umask (option) 값
: 새로 생성되는 파일이나 디렉터리의 기본 허가권 값을 지정한다. 파일의 기본권한은 666, 디렉터리의 기본 권한은 777이다. 이때 umask를 때리면 넘겨 받은 값을 뺀 값을 기본 허가권으로 설정하게 된다. (예: 644 = 666-022)
3) 기타 특수 권한
SetUID / SetGID의 경우, 프로세스가 실행되는 동안 해당 프로세스의 root권한을 임시로 가져오는 기능이다. 이때 SetUID의 경우 사용자가 사용할 때만 소유자 권한으로 파일을 실행시키고, SetGID의 경우 사용자가 사용할 때만 그룹 권한으로 파일을 실행하게 된다. 그러니까, SetUID는 파일의 소유자와 같은 권한으로 실행되고 - SetGID는 그룹과 같은 권한으로 실행된다. 이때 특수권한의 표기 방법은 아래와 같이 4자리로 나타낸다.
| 코드(rwx상) | 절대값 | 설명 | |
| SetUID | s | 4000 | 프로세스 실행 당시 UID로 |
| SetGID | s | 2000 | 프로세스 실행 당시 GID로 |
| Sticky bit | 1 | 1000 | 실행 후에도 메모리 점유 |
chmod 4644 file/dir_name
※ Sticky bit이 설정되어 있는 디렉터리 안의 내용은, 해당 파일의 소유자나 root만이 변경이 가능하게 한다. sticky bit을 밀어버리려면 소유자와 관리자만 지울 수 있다.
