리눅스 파일 권한 설정 chmod 소유권 chown 및 그룹 소유권 변경

리눅스 파일 권한 (Permissions)

리눅스는 다양한 사용자가 사용할 수 있는 멀티 유저 시스템입니다. 여러 명의 컴퓨터 사용자가 동시 접근도 가능하고 파일을 관리할 수 있기 때문에 편리한 점도 있지만 보안에도 신경을 써야 합니다. 윈도우나 다른 컴퓨터 시스템에서도 파일 권한이 있긴 하지만 리눅스처럼 복잡하고 까다롭지는 않습니다. 평소에 컴퓨터를 사용하면서 파일 권한에 신경을 쓰면서 작업을 할 일은 없으니 말이죠.

 

리눅스 ls 명령

 

리눅스에는 다음 두 가지 권한이 있습니다.

 

  • 소유권 (Owners) : 특정 파일 또는 디렉터리를 소유하는 권리
  • 허가권 (Permissions) : 특정 파일 또는 디렉터리의 접근 권한을 설정 하는 권리

리눅스 파일 권한

 

위의 그림의 Permissions 부분이 허가권에 대한 정보입니다. Owners 부분이 소유권에 대한 부분입니다. 소유권은 사용자와 그룹을 표시해줍니다. 우선 허가권에 대해서 알아보면 -rwxrxwrwx 같이 9자리로 되어 있고 맨 앞에 파일 타입(File Type)은 해당 파일이 디렉터리 타입인지, 일반 파일인지 알 수 있습니다.

 

  • r : read (읽기 권한)
  • w : write (쓰기 권한)
  • e : execute (실행 권한)

 

CHMOD 명령어 - 허가권 수정

 

chmod(change mode) 명령은 허가권을 수정할 수 있는 명령어 입니다. 수정은 다음과 같이 문자 모드 또는 숫자 모드로 수정 가능합니다.

 

  • 문자 모드 : u, g, o, a의 소유자에게 +, -, = 등의 명령으로 허가권을 변경합니다.
  • 숫자 모드 : 4, 2, 1, 0 등의 숫자를 조합해서 8진수의 값을 만들어 허가권을 변경합니다.

 

 

 

 문자모드 

 

 1. 우선 문자 모드로 chmod 명령을 실행하기 위해서 my.txt라는 파일을 생성해보겠습니다. 새로 생성된 파일의 허가권(Permissions)을 보시면 -rx-rw-r-- 로 만들어진 것을 볼 수 있습니다.  9자리 중 소유자와 그룹에 대해서는 읽기 쓰기가 가능하고 그 밖의 사용자는 읽기만 가능하다는 것을 확인할 수 있습니다.

touch my.txt

리눅스 파일 생성


 

 

 

 2. 이번에는 다음과 같이 명령을 입력합니다.

chmod go+rw my.txt

리눅스 허가권 변경


 

 

 

 

 3. 파일 권한이 다음과 같이 모든 사용자에 대해서 읽기와 쓰기가 가능하도록 변경되었습니다. 이처럼 문자를 이용한 chmod 명령을 사용하면 쉽게 파일의 권한을 변경할 수 있습니다.

변경된 퍼미션 (Permission)


 

 

 

 

 

문자모드 - 코드표

문자 설명
u  사용자 권한
g  그룹 권한
o  소유자와 그룹을 제외한 사용자에 대한 권한 
a  모든 사용자

 

문자 설명
+ 현재 모드에 권한 추가
- 현재 모드에서 권한 제거
= 현재 모드로 권한 지정

 

 

 

 

 

 숫자모드 

 

 1. you.txt 라는 파일을 만들어줍니다. 현재 퍼미션을 숫자로 표현하면 664라고 할 수 있습니다. 이제 모든 사용자가 읽기, 쓰기, 실행을 할 수 있도록 다음과 같이 권한을 주겠습니다.

$chmod 777 you.txt

 

숫자모드로 퍼미션 변경


 

 

 

 2. 다음과 같이 rwxrwxrwx로 파일 퍼미션이 변경된 것을 확인할 수 있습니다. 모든 사용자가 읽기, 쓰기, 실행이 가능해졌습니다.

변경된 허가권


 

 

 

 

 3. 이번에는 다음과 같이 명령을 입력해보겠습니다. 다음 명령은 소유자 외에는 읽기만 가능하도록 변경합니다.

chmod 744 you.txt

허가권 변경


 

 

 

 4. 이제 rwxr--r-- 와 같이 변경된 것을 확인할 수 있습니다. 이처럼 숫자를 이용해서 변경하는 것이 더 편리할 수도 있습니다. 문자든 숫자든 편한 방식으로 사용하면 될 것 같습니다.

변경된 리눅스 파일 권한


 

숫자 모드에서는 예를 들어 다음과 같은 규칙으로 허가권이 결정됩니다.

 

[rwx] [rwx] [rwx] = [0] [7] [4] = [---] [rwx] [r--]

[rwx] [rwx] [rwx] = [7] [7] [4] = [rwx] [rwx] [r--]

[rwx] [rwx] [rwx] = [2] [1] [3] = [-w-] [---] [-wx]

[rwx] [rwx] [rwx] = [4] [5] [6] = [r--] [r-x] [rw-]

[rwx] [rwx] [rwx] = [1] [5] [5] = [--x] [r-x] [r-x]

 

숫자 모드 - 코드표

숫자 표기 권한
0 --- 권한 없음
1 --x 실행
2 -w- 쓰기
3 -wx 쓰기, 실행
4 r-- 읽기
5 r-x 읽기, 실행
6 rw- 읽기, 쓰기
7 rwx 읽기, 쓰기, 실행
 

 

 

CHOWN 명령어 - 소유권 변경

 

마지막으로 소유권을 변경해보겠습니다. 허가권은 사용자 별로 권한을 달리 설정했다면 소유권 변경은 해당 파일 또는 폴더의 소유로 변경할 것인지에 대한 것입니다. [rwx][rwx][rwx] 다시 말해 사용자와 그룹을 누구로 할 것인지에 대한 문제입니다.

 

 

 

 

 1. 파일의 소유권을 변경하기 위해선 다음과 같이 chown 명령어를 통해서 변경합니다. 사용자:그룹 의 형태의 인자를 받습니다. 두 번째 인자로는 소유권을 변경할 파일명을 받습니다. 폴더가 될 수도 있는데요. 만약 하위 폴더들의 소유권도 변경하고 싶다면 그때는 -R 옵션을 추가해줍니다. 그럼 재귀로 하위의 모든 폴더 및 파일을 해당 소유자로 변경됩니다.

chown root:root you.txt

chown 명령을 통한 소유권 변경


 

 

 

 2. 명령을 통해 다음과 같이 root 소유자 root 그룹으로 변경된 걸 확인하실 수 있습니다.

소유권 변경 완료


 

 

 

리눅스뿐만 아니라 맥, 윈도우등 여러 운영체재에서는 파일 권한 즉 허가권 변경이 매우 중요합니다. 특히나 리눅스 같은 멀티유저 운영체제의 경우 소유권의 중요성도 매우 큽니다. 때문에 리눅스를 사용할 때는 허가권, 소유권에 대해서 분명히 알고 있어야 하죠.

댓글

Designed by JB FACTORY