본문 바로가기

대학교 2학년 1학기/리눅스 프로그래밍

파일 접근 권한 관리하기

728x90

1. 파일 속성

ex) -rw-r--r-- 1 root root 223 118 23:13 /etc/hosts

-: 파일의 종류 (-: 일반파일일반 파일, d: 디렉터리)

rw-r--r--: 파일의 접근 권한 표시

1: 하드 링크 개수

root: 파일 소유자 로그인 ID

root: 파일 소유자의 그룹 이름

223: 파일의 크기

118 23:13 : 파일이 마지막으로 수정된 시간

/etc/hosts: 파일명

file: 지정한 파일의 종류를 알려줌

- 형식: file 파일

groups: 사용자가 속한 그룹을 알려줌

- 형식: groups [사용자명]

 

2. 파일의 접근 권한

- 사용자를 파일 소유자, 파일이 속한 그룹, 그 외 기타 사용자로 구분

2-1. 접근 권한의 종류

- 읽기 권한, 쓰기 권한, 실행 권한이 있음.

 

2-2. 접근 권한 표기 방법

- 읽기 권한은 r, 쓰기 권한은 w, 실행 권한은 x로 나타나며, 해당 권한이 없는 경우에는 -로 표기

- 사용자 카테고리가 세 개이고 권한도 세 개이므로 총 아홉 개의 문자로 나타내는 것

 

2-3. 접근 권한 변경 명령

chmod: 파일이나 디렉터리의 접근 권한을 변경

- 형식: chmod [옵션] 권한 모드 파일 또는 디렉터리

- 옵션: -R: 하위 디렉터리까지 모두 변경

 

3. 기호를 이용한 파일 접근 권한 변경

기호 모드에서 사용하는 문자와 기호

- 사용자 카테고리 문자

u: 파일 소유자

g: 소유자가 속한 그룹

o: 소유자와 그룹 이외의 기타 사용자

a: 전체 사용자

- 연산자 기호

+: 권한 부여

-: 권한 제거

=: 접근 권한 설정

- 접근 권한 문자

r: 읽기 권한

w: 쓰기 권한

x: 실행 권한

ex) chmod u+w,g-w test.txt (쉼표 외에 공백 문자가 있으면 안 됨))

 

4. 숫자를 이용한 파일 접근 권한 변경

4-1. 숫자로 환산하기

- 각 권한이 있으면 1, 없으면 0으로 바꾼 후 2진수 세 자리로 간주하여 환산 (0~7)

ex) chmod 755 test.txt (rwxr-xr-x)

 

5. 기본 접근 권한 설정

- 파일이나 디렉터리를 생성할 때 기본 접근 권한이 자동적으로 설정되는데 일반 파일소유자는 읽기, 쓰기 권한이 부여되고 그룹과 기타 사용자에는 읽기 권한이 설정된다. 디렉터리 파일의 경우에는 소유자에게 모든 권한, 그룹과 타 사용자에게는 읽기, 실행 권한이 설정된다.

5-1. 기본 접근 권한 확인하고 변경

umask: 기본 접근 권한을 출력하거나 변경

- 형식: umask [옵션] [마스크 값]

- 옵션: -S (마스크 값을 문자로 출력)

마스크 값의 의미

- 파일이나 디렉터리 생성 시 부여하지 않을 권한을 지정해 놓는 것

 

5-2. 마스크 값 적용 과정

- 일반 파일이 가질 수 있는 최대 접근 권한은 666, 디렉터리는 777

- 최대 접근 권한에서 마스크 값을 뺀다. ex) 최대 접근 권한 666, 마스크 값 002 일 때 현재 파일의 기본 접근 권한은 664로 rw-rw-r-- 이다.

 

6. 특수 접근 권한

- 특별한 접근 권한을 제공하는데 맨 앞자리의 숫자가 0이면 일반적인 접근 권한이지만 1,2,4는 특수 접근 권한이 설정됨

- SetUid: 맨 앞자리가 4

- SetGID: 맨 앞자리가 2

- 스티키 비트: 맨 앞자리가 1

- 입력 방법은 최대 권한 앞에 붙여씀ex) chmod 4777 test.exe

6-1. SetUID

- 해당 파일이 실행되는 동안에는 파일 사용자가 아닌 파일 소유자의 권한이 적용 ex) password

- 설정되면 소유자의 실행 권한에 s가 표시

 

6-2. SetGID

- 해당 파일이 실행되는 동안에는 파일 소유 그룹의 권한이 적용

- 설정되면 그룹의 실행 권한에 's'가 표시

 

6-3. 스티키 비트

- 디렉터리에 설정하며 설정 시 누구나 파일을 생성할 수 있음. 파일은 파일을 생성한 계정으로 소유자가 설정되고, 다른 사용자가 생성한 파일은 삭제할 수 없음. ex) /tmp 디렉터리

- 설정되면 기타 사용자의 실행 권한에 t’가 표시

특수 권한을 설정하는 파일이나 디렉터리 모두 실행 권한을 가지고 있어야 한다. 만약 실행 권한이 없을 시 's'가 아닌 'S', 't'가 아닌 'T가 표시된다.

 

chown: 파일이나 디렉터리의 소유자를 변경.
형식: chown [옵션] [소유자] [파일 or 디렉토리 경로] 
chgrp: 파일이나 디렉터리의 소유 그룹을 변경.
형식: chgrp [옵션] [그룹] [파일 or 디렉토리 경로]
newgrp: 현재 shell의 그룹 ID 변경. 

728x90

'대학교 2학년 1학기 > 리눅스 프로그래밍' 카테고리의 다른 글

파일 시스템과 디스크 관리하기  (0) 2022.05.01
프로세스 관리하기  (0) 2022.05.01
셸 사용하기  (0) 2022.04.04
문서 편집하기  (0) 2022.04.04
디렉터리와 파일 사용  (0) 2022.04.04