본문 바로가기
리눅스

리눅스 파일 및 디렉토리 권한과 특수 권한

by 햇병아리엔지니어 2022. 9. 16.
반응형

리눅스 파일 및 디렉토리 권한에 대하여 알아보겠습니다.

 

1. 권한이란

리눅스의 모든 파일과 디렉토리는 권한을 가지고 있습니다. 
리눅스의 파일시스템에는 권한에 대한 정보를 저장하는 부분이 있습니다.
퍼미션들은 시스템 상에 존재하는 파일들에 대한 읽기, 쓰기, 실행에 대하여 접근 할 수 있는 지를 결정합니다.
ls -l 명령어를 통해 첫번째 필드 값을 확인하여 파일 및 디렉토리의 권한이 무엇인지 확인 가능합니다.
ex) -rwxr-wr--
이러한 권한은 다중 사용자 환경을 제공하는 리눅스 환경에서는 가장 기초적이자 기본적인 접근 통제 방법이라 할 수 있습니다.


권한에 대한 설명
drwxr-xr-- 3 root root 18 9월 16일 08:22 .txt
권한을 나타내는 문자는 총 10개이며 가장 첫번째 나타내는 문자는 파일의 종류입니다.
두번째부터 열번째 문자는 권한입니다. 

rw- : 소유자 권한 
소유자 : 일반적으로 파일이나 디렉토리를 생성한 사용자, 명령어로 변경이 가능합니다.
r-x : 관리그룹 권한
관리 그룹 : 파일이나 디렉토리를 생성한 사용자가 속한 그룹, 명령어로 변경이 가능합니다.
r-- : 나머지 권한
나머지 : 소유자가 아닌 관리 그룹에 속한 사용자도 아닌 경우에 해당합니다. 

r : 읽기권한
w : 쓰기권한
x : 실행권한
- : 권한없음

 

2.권한 설정 관련

명령어 chmod
chmod [권한] [파일 또는 디렉토리 이름]
여기서 [권한] : 권한을 입력할 때에는 심볼릭 모드와 8진수 모드 2가지 방식을 이용하여 입력이 가능합니다.
[파일 또는 디렉토리 이름] : 파일, 디렉토리를 지정할 때는 절대경로 또는 상대경로 모두 가능합니다. 
권한 관련 파일 및 디렉토리 명령어


심볼릭 모드 : 간단한 문자로 설정합니다.
ex) 소유자에게 쓰기 권한을 준다.
chmod u+w file

옥텟(8진수)모드 : 0~7까지 숫자를 이용합니다.


r : 4, 읽기권한
w : 2, 쓰기권한
x : 1, 실행권한

umask : 파일 또는 디렉토리를 생성할 때 권한 값을 결정합니다. 
파일이 생성될때 기본적인 권한은 644 / rw-r--r-- 입니다.
디렉토리를 생성할 때 기본적인 권한은 755 / rwxr-xr-x입니다.

이 값은 umask 값에 의해서 결정되는 값으로 파일은 666에서 umask 값을 not 연산을 수행 후 둘을 and 연산, 디렉토리는 777에서 같은 방식으로 구합니다.

umask 값은 umask 명령어를 이용하여 변경 가능하며 재부팅하면 초기화됩니다.
재부팅 후에도 적용 시키려면 사용자 초기화 파일을 설정해야합니다.

권한에 따라 영향을 받는 파일 및 디렉토리 명령어
읽기 : 파일) more , cat, head, tail 
     디렉토리)ls

쓰기 : 파일) vi 편집기로 내용 수정 
     디렉토리)touch, mkdir, mv, cp, rm
 
실행 : 파일) 파일이름
     디렉토리) cd 

 

3. 특수 권한

일반적인 권한과는 조금 다른 특수한 권한으로 
종류는 다음과 같이 3가지 setUID , SetGID, Sticky Bit 가 있습니다. 

setUID: 일반 사용자의 권한을 소유자 권한으로 변경해줍니다. 나머지 사용자가 파일을 실행할 때 소유자의 권한으로 접근 할 수 있게 해주는 권한입니다.  
ls -l 명령어를 통해 특수권한이 부여된 파일은 소유자의 권한 부분 중 실행 권한 부분이 x가 아닌 s로 나타납니다.  
chmod 4xxx[파일이름] 또는 chmod u+s[파일이름] 명령어로 설정할 수 있습니다. 

SetGID
나머지 사용자가 파일을 실핼할 때 관리 그룹의 권한으로 접근할 수 있게 해주는 권한입니다. 
ls -l 명령어를 통해 특수권한이 부여된 파일은 관리 그룹의 권한 부분 중 실행 권한 부분이 x가 아닌 s로 나타납니다.
chmod 2xxx[파일이름] 또는 chmod g+s[파일이름] 명령어로 설정할 수 있습니다.

Sticky Bit
디렉토리에 부여하는 권한으로 디렉토리를 마치 자유게시판처럼 사용할 수 있게 해주는 권한으로 일반적으로 /tmp 디렉토리에 부여합니다. 
ls -l 명령어를 통해 특수권한이 부여된 파일은 나머지 사용자의 권한 부분 중 실행 권한 부분이 x가 아닌 t로 나타납니다.
chmod 1xxx[파일이름] 또는 chmod o+t[파일이름] 명령어로 설정할 수 있습니다.
Sticky Bit는 디렉토리에 부여합니다. 
Sticky Bit가 부여된 디렉토리 내에서는 누구나 자신의 파일을 생성하거나 수정 및 삭제가 가능합니다. 
그러나 다른 사용자의 파일을 수정하거나 삭제할 수 없습니다. 관리자만 가능합니다. 

반응형

댓글