11. 파일의 권한과 소유권
리눅스 파일 시스템은 파일과 디렉터리에 대한 권한과 소유권을 통해 시스템 보안을 관리한다.
파일 권한
리눅스는 각 파일과 디렉터리에 대해 읽기(Read), 쓰기(Write), 실행(Execute) 권한을 설정할 수 있다. 권한은 다음 세 사용자 범주에 대해 개별적으로 설정한다.
- 소유자 (owner)
- 그룹 (group)
- 기타 사용자 (others)
권한의 종류
권한 | 설명 |
---|---|
r (read) | 파일 내용을 읽을 수 있는 권한 |
w (write) | 파일 내용을 수정할 수 있는 권한 |
x (execute) | 파일을 실행할 수 있는 권한 (디렉터리의 경우, 내부 파일 목록 조회 권한) |
권한 확인
ls -l
명령어를 사용하여 파일 권한을 확인할 수 있다.
ls -l
예시 출력:
-rwxr-xr--
위치 | 설명 |
---|---|
첫 문자 | 파일 유형 (- : 일반 파일, d : 디렉터리 등) |
2~4 | 소유자 권한 (rwx ) |
5~7 | 그룹 권한 (r-x ) |
8~10 | 기타 사용자 권한 (r-- ) |
파일 소유권
각 파일과 디렉터리는 소유자와 그룹을 가진다. 기본적으로 파일을 생성한 사용자가 소유자가 되며, 해당 사용자가 속한 그룹이 파일의 그룹으로 설정된다.
ls -l
예시:
-rwxr-xr-- 1 owner group 1234 Jan 1 00:00 example.txt
owner
: 파일의 소유자group
: 파일이 속한 그룹
파일 권한 변경 - chmod
기호 모드 (Symbolic Mode)
기호 모드는 대상 사용자와 권한을 기호로 지정한다.
예시 | 설명 |
---|---|
chmod u+r file | 소유자에게 읽기 권한 추가 |
chmod g-w file | 그룹에서 쓰기 권한 제거 |
chmod o+x file | 기타 사용자에게 실행 권한 추가 |
chmod o+r-w+x file | 기타 사용자에게 읽기 및 실행 권한 추가, 쓰기 권한 제거 |
숫자 모드 (Numeric Mode)
각 권한은 다음 숫자로 표현한다.
- 읽기: 4
- 쓰기: 2
- 실행: 1
세 권한을 합산하여 3자리 숫자로 권한을 지정한다.
chmod 755 example.txt
- 7 (4+2+1): 소유자 = 읽기 + 쓰기 + 실행
- 5 (4+1): 그룹 = 읽기 + 실행
- 5 (4+1): 기타 사용자 = 읽기 + 실행
실습: 파일 권한 변경
[번외] 사용자 그룹과 사용자 변경
sudo 권한
sudo는 일반 사용자에게 제한된 루트 권한을 부여하는 명령어이다. 전체 루트 권한 없이도 특정 작업만 수행할 수 있도록 설정할 수 있다.
주요 기능
- 특정 명령에 대해서만 루트 권한 허용 가능
- 모든 sudo 실행 내용은 로그에 기록되어 추적 가능
- 전체 루트 권한 없이 필요한 작업만 위임 가능
주요 명령어
명령어 | 설명 |
---|---|
sudo 명령어 | 루트 권한으로 명령어 실행 |
sudo -l | 실행 가능한 명령어 목록 확인 |
sudo -u 사용자 명령어 | 지정한 사용자 권한으로 실행 |
sudo -i | 루트 로그인 셸 시작 |
sudo -s | 현재 환경을 유지하며 루트 셸 시작 |
[번외] sudo 권한 제어
요약
- 파일과 디렉터리는 권한과 소유권으로 보안을 관리한다.
- 권한은 소유자, 그룹, 기타 사용자로 나뉘어 설정된다.
- sudo 명령어를 통해 일반 사용자도 제한된 루트 작업을 수행할 수 있다.