티스토리 뷰

리눅스나 윈도우는 여러 명의 사용자가 동시에 사용 가능한 다중 사용자 기능을 지원하기 때문에 권한이 굉장히 중요하다.
권한은 기본적으로 모든 파일과 디렉토리에 대해 읽기, 쓰기, 실행 작업에 대한 접근 여부를 결정한다.
특별히 리눅스는 
 ㄴ 리눅스의 모든 파일과 디렉토리는 권한(퍼미션)을 가지고 있다.
 ㄴ 리눅스의 파일시스템 상에 권한에 대한 정보를 저장하는 부분이 있다.
 ㄴ 퍼미션들은 시스템 상에 존재하는 파일들에 대한 읽기, 쓰기, 실행에 대한 접근 여부를 결정한다.
 ㄴ 'ls -l' 명령어로 확인 가능하다. ( ex> 첫번째 필드, -rwxr-wr--)
 ㄴ 이런 퍼미션은 다중 사용자 환경을 제공하는 리눅스 환경에서는 가장 기초적인 접근 통제 방법이다.

 

 

[2 리눅스 서버 퍼미션 구조]

- 이제 퍼미션정보를 제대로 확인해보자. 

 > 앞에서 두번째부터 아홉 번째까지가 바로 퍼미션 정보이다. 
 > 퍼미션은 파일이나 디렉토리에 대한 사용자의 허가정도를 나타낸다.
 > 사용자는 소유자(user), 그룹소유자(group), 이외 모든 사용자(other)로 구별한다.
 > 접근 권한은 r, w, x, s, t 등의 권한으로 구별한다.

 

 

- 퍼미션 종류

 > 퍼미션의 구조는 세 파트로 나뉜다: rwx rwx rwx

* 퍼미션 종류 , () 괄호에 있는 것이 해당 퍼미션 기호
읽기 ( r ) : 파일의 읽기권한
쓰기 ( w ) : 파일의 쓰기권한
실행 ( x ) : 파일의 실행권한

 > 그리고 퍼미션의 사용자 지정에도 3가지가 있다.  

* 퍼미션의 사용자지정
소유자 : 소유자에 대한 퍼미션지정
그룹 : 소유그룹에 대한 퍼미션지정
공개 : 모든사용자들에 대한 퍼미션지정

  

- 퍼미션의 구조

첫 rwx: 유저의 권한(user, u)
두번째 rwx: 그룹의 권한(group, g)
세번째 rwx: 나머지 권한(other, o)

 > 그런데 기호의 종류는 ( r  w  x )  3개인데.. 퍼미션정보에는 총9개가 표시된다. 
 > 일단 세자리씩 끊어서 본다면, ( rwx  r-x  r-x ) 로 나눌 수 있다. 
 > 즉, "소유자 : rwx , 그룹 : r-x , 기타사용자 : r-x"  
 > 여기서 '-' 기호는 그 퍼미션은 미할당상태라라는 기호이다. 

 

- 퍼미션 해석

해석해보면 " 이 파일에 대해서 소유자는 읽기(r),쓰기(w),실행(x)을 허용하고, 
파일의 소유그룹에 속하고 있는 사용자들은 읽기(r),실행(x)만 허용하고,
이외에 나머지 모든 사용자들도 읽기(r),실행(x)만 허용한다. "
 

참조) 처음 생성시
 rw- r-- r--   파일 644
drwx r-x r-x  디렉토리 755

 

[3 퍼미션 제어]

- 퍼미션 변경하기

파일이 생성될때 기본적인 퍼미션이 부여된다. 
하지만, 퍼미션을 변경하고 싶을 때가 있다. (가령 이 파일을 모두에게 공개해야될 경우_
 > 퍼미션 변경에는 여러가지 방법이 있지만, 여기서는 가장 쉬운방법을 사용할 것인데, 
 > 바로 "chmod" 명령을 사용하면 아주 손쉽게 퍼미션을 변경할 수 있다. 

* chmod [옵션][변경될 퍼미션값] [변경할 파일]
예) -R: 디렉토리인 경우 하위 디렉토리와 파일까지 수정
     #chmod 755 a.txt
     #chmod -R 750 aa/

 


- [퍼미션값]  지정

 > 퍼미션값을 구하는 방법은 다음과 같다.

각 퍼미션 기호를 숫자로 변환 한다. ( r = 4 , w = 2 , x = 1 )
예) r  -  x 인 경우 4  0  1
 
변환한 숫자를 합산한다.
예) 4  0  1 인 경우  4+0+1 = 5


 
이런식으로 하나의 퍼미션을 숫자값으로 변환하면 된다..
예) rwxr-xr-x 이면 rwx  r-x  r-x 세자리씩 끊고, 4+2+1  | 4+0+1 | 4+0+1  숫자변환 뒤 합산하면 "755" 라는 퍼미션값이 나온다.
 
그래서 " chmod 755 a.text " 명령을 실행하면 a.text 파일이 755에 해당되는 퍼미션으로 변경된다.
그리고 디렉토리도 이 방법으로 퍼미션을 변경할 수 있다.
 
디렉토리의 경우 "-R" 옵션을 사용하면 하위 디렉토리의 모든 디렉토리및 파일의 퍼미션이 변경된다.
예) " chmod -R 777 testdir " -> testdir 디렉토리의 하위에 위치한 모든 파일및 디렉토리 퍼미션이 777로 변경된다.
 


- [퍼미션값]  지정 다른 방법

 > 위와 다른 방식으로도 chmod 커맨드를 사용할 수 있다.

대상: u(user), g(group), o(other), a(all)
operator: +(추가), -(삭제), =(변경 x)
퍼미션: r, w, x, s, t
#chmod o+x, g-x a.txt
#chmod g+wx, o-w, o+x a.txt

 

참고) 
(1) 권한 : 권한을 입력할 때는 '심볼릭 모드'와 '옥텟(8진수) 모드'의 2가지 방식을 이용하여 입력 가능하다.
(2) 파일 또는 디렉토리 이름 : 파일, 디렉토리를 지정할 때에는 절대 경로 또는 상대 경로 모두 가능하다.
*참고)
뭐로 시작하느냐에 따라 무슨 파일인지 알 수 있다.
ㄴ d 로 시작하면 디렉토리
ㄴ / 로 시작하면 일반문서
ㄴ l(소문자 엘)은 심볼릭 링크
ㄴ b는 블록
ㄴ -는 파일

ex) drwxr-xr--
ㄴ 첫번째 : d
ㄴㄴ 분류
ㄴ 2~4번째 : 소유자 권한
ㄴㄴ 권한이 있으면 알파벳, 없으면 -(데쉬)로 표시한다.
ㄴㄴ ex) rwx : 읽기, 쓰기, 실행 모든 권한o
ㄴㄴ ex) r-x : 읽기, 실행 권한o
ㄴ 5~7번째 : 관리그룹 권한
ㄴ 8~10번째 : 나머지 권한

 

 

 


- 다음 "특수권한비트" -  https://modu4you.com/18

 

[CentOS7][초보][특수권한][소유자권한.그룹권한]

- UNIX 시스템은 파일에 대한 접근 권한 및 파일 종류를 나타내기 위해 16bit를 사용한다. - 각 3bit씩 총 9bit는 소유자 접근권한(user), 그룹 소유자 접근권한(group), 기타 사용자 접근권한(other)의 권한

modu4you.com