
1. 파일 접근 권한
- 리눅스와 같은 다중 사용자 시스템은 사용자의 파일에 다른 사용자가 마음대로 접근할 수 없도록 보안 기능을 제공함
- 사용자는 자신의 파일과 디렉터리 중에서 다른 사용자가 접근해도 되는 것과 그렇지 않은 것을 구분하여 접근 권한을 제한함
- 사용자의 파일을 보호하는 가장 기본적인 보안 기능
- 리눅스에서는 사용자 카테고리별로 접근 권한을 다르게 부여해 파일을 보호할 수 있음
- 카테고리별로 파일에 접근하는 권한을 소유자나 시스템 관리자가 조정할 수 있음
- 읽기 권한 : 파일을 변경할 수는 없지만 내용은 볼 수 있는 권한
- 쓰기 권한 : 파일의 내용을 보는 것 뿐 아니라 수정하거나 삭제도 가능한 권한
| 권한 | 파일 | 디렉터리 |
| 읽기(r) | 파일을 읽거나 복사할 수 있음 | ls 명령으로 디렉터리 목록을 볼 수 있음 ls 명령의 실행 권한이 있어야 사용 가능 |
| 쓰기(w) | 파일을 수정, 이동, 삭제할 수 있음 * 디렉터리에 쓰기 권한이 있어야 함 |
파일을 생성하거나 삭제할 수 있음 |
| 실행(x) | 파일을 실행할 수 있음 *셀 스크립트나 실행 파일의 경우 |
cd 명령을 사용할 수 있음 파일을 디렉터리로 이동하거나 복사할 수 있음 |
- 접근 권한 표기 : 사용자 카테고리별로 누가 파일을 읽고 쓰고 실행할 수 있는지 문자로 표현 (없을 경우 -)
- 사용자 카테고리별로 세가지 권한의 부여 여부를 rwx 세 문자를 묶어서 표기
* 사용자 카테고리가 세 개이고, 권한도 세 개이므로 총 9개의 문자로 나타냄
- ls -l 파일 확인 시, -rw-r--r--. 로 나오는 부분의 맨 앞의 -를 제외한 rw-r--r--가 접근 권한 표시임
- 사용자 카테고리별로 세문자씩 한묶음으로 표시
- User(소유자), Group(그룹), Other(기타사용자) 카테고리로 나뉨
- rw-r-xr-- : 소유자가 읽기 쓰기 권한을 가지고 있음, 그룹은 읽기와 실행 권한을 가지고 있음, 기타 사용자는 읽기 권한만 가짐
- 파일의 소유자와 시스템 관리자는 접근 권한을 바꿀 수 있음
- chmod 파일이나 디텍토리 접근 권한을 변경함
- 옵션 (-R) 하위 디렉터리까지 모두 변경 가능
- 기호모드 : 문자와 기호(rwx)로 표기
- 숫자모드 : 문자를 숫자로 변경한 값으로 표기
2. 권한 변경
(1) 기호를 이용한 파일 접근 권한 변경
- chmod 사용자카테고리문자 연산자기호 접근권한문서 파일명
* 사용자카테고리 문자 = 사용자(u), 그룹(g), 기타 사용자(o) 전체 사용자(a)를 문자로 표기
* 연산자 = 권한 부여나 제거를 나타내는 기호 +(권한부여) -(권한제거) =(접근권한설정)
* 접근 권한 기호 = 읽기 쓰기 실행을 나타내는 문자 사용 r(읽기) w(쓰기) x(실행)
[ 예시 ]
u+x 소유자에게 쓰기 권한 부여
o-r 기타 사용자에게 읽기 권한 제거
u=rwx 소유자에게 모든 권한 부여
u+x, go+w 소유자에게 실행 권한, 그룹과 기타 사용자에게 쓰기 권한 부여
+wx 모든 사용자에게 쓰기, 실행 권한 부여
(2) 숫자를 이용한 파일 접근 권한 변경
- 기호 모드에서는 카테고리와 권한으 모두 문자로 표시했으나 숫자모드에서는 각 권한의 유무를 0과 1로 표기하고 이를 다시 환산하여 숫자로 표기
- rwx = (111) = 7, rx = (101) = 5, x = (001) = 1 등등으로 표시
- 카테고리별로 계산하여 사용
- chmod 777 파일명 으로 사용
- 숫자의 각 위치가 사용자 카테고리를 나타내기 때문에 사용자 카테고리를 따로 지정할 필요가 없음
- 항상 세자리 수를 사용해야 함
- 변경하려는 한 카테고리의 권한 뿐 아니라 다른 카테고리 권한도 계산하여 사용해야 함
3. 접근 권한 설정
(1) 기본 접근 권한 설정
- 리눅스는 파일, 디렉터리를 설정할 때 기본 접근 권한이 자동으로 설정됨
- 일반 파일 : 소유자(rw) 그룹/기타사용자(r)
- 일반 디렉터리 : 소유자(rwx) 그룹/기타사용자(rx)
- 기본 접근 권한은 리눅스 시스템에 설정된 기본값에 따른 것임(기본값 변경 가능)
- 마스크 설정으로 접근 권한 마스킹 가능
* unmask -S (마스크 값을 문자로 출력함)
* 아무 인자 없이 umask만 입력 시 현재 설정값 출력, umask -S만 입력 시 u=rwx, g=rx, o=rx 이런식으로 문자로 출력
* umask 0077 입력 시 기본 접근 권한 0077로 변경됨
- 마스크 값은 파일이 생성될 때마다 적용됨
- 마스크 값을 비트로 표시했을 때 그 값이 1인 경우 대응하는 권한은 제외함
- 마스크 값이 1이면 요청 권한이 어떤 것이든 권한 0(부여 안됨)
* 실행 파일도 기본적으로 실행 권한을 가져야 하며, 디렉터리와 같은 형태로 권한이 부여됨
- 리눅스의 기본 마스크값은 배포 판의 버전에 따라 다른데, 필요에 따라 적절히 변경하며 자신의 파일과 디렉토리 보호 가능
- umask로 마스크 값을 바꿀 때 파일과 디렉터리에 모두 적용해 봐야함 (파일에는 적합하나, 디렉터리에는 부적합할 수 있음)
(2) 특수 접근 권한 설정
- 일반적인 접근권한 외에 리눅스에서 제공하는 특별한 접근 권한
- umask가 출력하는 네 자리중 맨 앞자리는 특수 접근 권한을 나타냄
- 맨앞자리 숫자 0 일반적인 접근 권한 설정
- 맨앞자리 숫자 1,2,4 특수 접근 권한 설정
* 1 스티키 비트(Sticky Bit) : 디렉터리에 설정하며, 이 디렉터리에 누구나 파일을 생성할 수 있는 권한을 가짐
파일은 파일을 생성한 계정으로 소유자가 설정되고, 다른 사용자가 생성한 파일은 삭제할 수 없음
스티키 비트 설정 시 기타 사용자의 설정 권한에 't'가 표시됨 (예시 : drwxdrwdrwt)
* 2 SetGID : 설정 시 해당 파일이 실행될 동안에는 파일 소유 그룹의 권한으로 실행됨
SetUID가 설정되면 그룹의 실행 권한에 's'가 표시됨 (예시 : -rwxr-sr-x)
* 4 SetUID : 설정 시 파일을 실행하면 실행하는 동안에는 사용자 권한이 아니라 파일 소유자 권한이 적용됨
SetUID가 설정되면 소유자의 실행 권한에 's'가 표시됨 (예시 : -rwsr-xr-x)
- 특수 권한을 설정하는 파일이나 디렉터리 모두 실행 권한을 가지고 있어야 함
- 실행 권한이 없는 파일에 SetUID나 SetGID를 설정하면 's'가 아니라 'S'가 표시됨
- 디렉터리 실행 권한이 없는데 스티키비트를 설정하면 't'가 아니라 'T'가 표시됨
- 대문자 S나 T가 나타나면 특수 접근 권한을 잘못 설정한 것임
'컴퓨터공학부' 카테고리의 다른 글
| [시스템 프로그래밍 Linux] 문서 편집 (0) | 2026.04.07 |
|---|---|
| [SQLD/SQLP] 요약 정리 (0) | 2026.04.06 |
| [SQLD/SQLP] 9. 튜닝 보고서 실습 (0) | 2026.04.04 |
| [SQLD/SQLP] 8. Partitioning (0) | 2026.04.03 |
| [문제 해결 알고리즘] 분할 정복 알고리즘 ② (0) | 2026.04.02 |