본문으로 바로가기

리눅스는 다중 사용자가 동시 접속하여 사용하는 다중 사용자 시스템이다. 따라서 모든 파일과 디렉터리에는 "소유권"과 "허가권" 이라는 속성이 존재한다.

그 중 파일과 디렉터리의 허가권(Permission)을 확인하는 방법과, 허가권을 변경하는 명령어 chomd에 대해 알아보자.


우선, ls -l 명령어를 통해 특정 파일에 대한 정보를 확인하면 아래와 같은 정보들을 얻을 수 있다.

여기서 허가에 대한 정보는 두번째 항목인 'rw-r--r--' 이다.


파일 허가권은 앞에서부터 3개씩 잘라서 읽으면 된다. 즉, 'rw-' , 'r--' , 'r--' 이렇게 세 덩이로 인식하면 된다.

앞에서부터 소유자, 그룹, 기타사용자 에 대한 Permission을 의미한다.

'r'은 read의 약자로서 읽기 권한을 뜻하고,

'w'는 write의 약자로 쓰기 권한을 뜻한다.

'x'는 execute의 약자로 실행 권한을 의미한다.

즉, 위 test.txt 파일의 허가권은 소유자에 대해서는 읽기와 쓰기, 소유 그룹은 읽기만, 그 외 사용자는 읽기만 하능한 Permission을 가진다고 해석할 수 있다.


허가권은 숫자로도 표현할 수 있다.

3개씩 잘라서 각각을 2진수로 표시한 뒤, 이를 다시 10진수로 합치는 방식으로 나타낸다.

즉, rw-는 이진수 110 이므로 10진수로는 6이다. r--는 이진수 100이므로 4를 나타낸다.

따라서 Permission rw-r--r--를 숫자로 표현하면 644가 되는 것이다.


파일 허가권(Permission)은 chmod 명령어로 변경할 수 있다.

아래 예제를 먼저 보자.



test3 파일의 처음 상태는 rw- r-- r-- 상태이다.

chmod 명령어는 숫자 형식으로도 사용 가능하며, 상대 모드(Symbolic method)로 사용할 수도 있다.


숫자 형식으로는 변경하고자 하는 허가권 형태를 앞에서 설명한 숫자 형태로 해당 파일에 부여하면 된다.

위 예제에서 chmod 777 test3 명령어를 통해 test3 파일의 허가권을 rwx rwx rwx 로 변경한 것을 볼 수 있다.


Symbolic method는 대상 u(user), g(group), o(other)과 권한 r(read), w(write), x(execute) 그리고 명령부호 +(추가), -(제거)로 이루어진다.

예를들어 'chmod o-x' 라고 입력하면 o(Other)에 대해서 x(Execute) 권한을 -(제거) 하라 는 명령이 된다.

상세한 예시는 위 예제 캡쳐를 확인해 보고, 직접 파일을 만들어 해 보면 금방 익힐 수 있을 것이다.


여기서 하나 주의해야 하는 것이, 파일의 소유권을 가지고 있다고 해서 모든 권한을 가지는 것이 아니라는 점이다.

아래 예시를 보자.


root 사용자에게 소유권이 있는 test2 파일을 실행하려 했지만 허가 거부 에러가 발생했다.

이 파일의 Permission이 소유자에 대해서도 'rw-' 이기 때문에 실행에 대한 권한이 없기 때문이다.



chmod 명령어를 통해 실행 권한을 준 다음에 실행하면 정상적으로 실행된다.


허가권에 대한 개념은 소유권과 함께 기본적으로 매우 중요하기 때문에 잘 알아둬야 할 것이다.

 Other Contents 

댓글을 달아 주세요