linux 파일 권한 설정

OS 2015. 6. 23. 00:38

리눅스/유닉스에서 권한 설정을 할 때 'chmod' 명령어를 사용합니다.
그런데, 이 명령어가 정확히 뭘 의미하는 것일까요?

리눅스에서 권한은 총 10자리로 표시됩니다. 대략 어떤 식으로 표시되는지 터미널창에서

$ ls -al
명령어를 이용해서 파일 리스트를 한 번 봅시다.

다음과 비슷한 리스트를 볼 수 있는데,

drwxr-xr-x 4 root root        4096 2011-03-12 14:58 .
drwxr-xr-x 7 root root        4096 2011-03-12 15:37 ..
drwxr-xr-x 2 root root        6364 2011-03-12 14:32 CSC
-r-xr-xr-x 1 root root       23110 2011-03-12 14:32 build.sh
여기서 맨 앞부분에 있는 'drwxr-xr-x'와 같은 부분이 권한을 표시하고 있는 부분입니다.

각각의 알파벳들은

d
디렉토리 구분 (d이면 디렉토리, -이면 파일)
r
읽기 권한
w
쓰기 권한
x
실행 권한
을 나타내고 있습니다.
그리고 맨 앞자리는 디렉토리, 그 다음 각 3자리씩은 소유자 권한, 그룹 권한, 전체 권한을 나타내고 있습니다.

즉,

    d   /   rwx    /    r-x    /    r-x
디렉토리 / 소유자 권한 / 그룹 권한 / 전체 권한
와 같습니다.

이제 권한 설정을 바꾸는 명령어에 대해서 알아보겠습니다. 리눅스에서 권한 설정을 바꾸는 명령어는 'chmod'입니다.
보통은 습관적으로 'chmod 777 [이름]'이라고 하는데, 이 777에 대해서 알아봅시다.

위의 권한의 rwx 각각은 r(4), w(2), x(1)의 값을 가지고 있습니다.
즉, r + w + x의 값은 7이 되는거죠.
결국 777은 소유자, 그룹, 전체 권한을 모두 rwx로 바꾸겠다는 뜻입니다.
그럼 745는 어떻게 될까요?
745 = (7) (4) (5) = (4+2+1) (4) (4+1) = (rwx) (r--) (r-x) = rwx r-- r-x

: