리눅스는 멀티유저 기반의 운영체로, 파일과 디렉토리를 제어하는
소유권(Ownership)과 허가권(Permissions) 개념을 가지고 있습니다
리눅스에서 모든 파일과 디렉토리는 다음의 정보를 가집니다
아래 명령어를 통해 소유권 정보를 확인할 수 있습니다
ls -l 파일명
다음 명령어를 통해 소유자 및 그룹을 변경할 수 있습니다
chwon 사용자:그룹 파일명
chown 사용자 파일명
chgrp 그룹명 파일명
리눅스는 rwx
형태로 각 사용자에 대해 접근 권한을 정의합니다
권한 | 의미 | 파일 | 디렉토리 |
---|---|---|---|
r | 읽기(Read) | 파일 내용 읽기 | 목록 보기 (ls) |
w | 쓰기(Write) | 파일 내용 수정 | 파일 생성/삭제 |
x | 실행(Execute) | 실행 가능 | 접근/이동 가능 |
각각은 다음 세가지 그룹으로 나뉩니다
해당 정보는 다음과 같이 사용할 수 있습니다
chmod u+x 파일명
chmod g-w 파일명
chmod o=r 파일명
chmod 755 파일명
umask
는 파일/디렉토리 생성 시 기본으로 적용되는 권한을 제한하는 값입니다.
666
(rw-rw-rw-)777
(rwxrwxrwx)최종 권한 = 기본 권한 - umask
umask 022
666 - 022 = 644
→ rw-r--r--
777 - 022 = 755
→ rwxr-xr-x
리눅스에는 기본 권한 외에도 다음과 같은 특수 권한이 존재합니다
특수권한은 보안 및 파일/디렉토리의 동작을 제어하는 데 역할을 합니다
/usr/bin/passwd
명령어 → 일반 사용자가 자신의 비밀번호를 바꿀 수 있는 이유/tmp
디렉토리특수 권한 | 8진수 값 | 설명 |
---|---|---|
SET-UID | 4 | 사용자 권한 상승 |
SET-GID | 2 | 그룹 권한 유지 |
Sticky Bit | 1 | 사용자만 삭제 가능 |
특수 권한은 일반 권한 앞에 추가된 숫자로 표현합니다.
또한 특수 권한은 ls -l
명령어로 확인할 수 있습니다:
s
: SET-UID/SET-GID (소문자: 실행권한 O, 대문자 S: 실행권한 X)t
: Sticky Bit (소문자: 실행권한 O, 대문자 T: 실행권한 X)