Unix File Permission

Windows 계열과 UNIX 계열의 가장 큰 차이점 중의 하나는 파일 권한이다.

대채로 윈도우즈 계열에서는 해당 파일이나 폴더의 속성 탭을 열어서 권한을 수정하게 되는데, UNIX 계열에서는(물론 UNIX에서도 그래픽 인터페이스를 기반으로 쉽게 변경할 수 있음) shell command로 변경을 하게 되는 경우가 많다.
다음은 예시이다.

터미널에서 ls -al 명령어를 치게 되면 다음처럼 자세하게 해당 폴더의 내용을 볼 수 있는데 보이는 부분 중 testpermission의 맨 앞을 보게 되면,
drwxrwxr-x
라는 부분이 있다.
이 부분에 대한 해석은
d : directory ( – 로 표시되면 directory가 아님 즉 파일이란 뜻.)
r : read 가능 ( – 로 표시되면 읽기 불가능)
w : write가 가능 ( – 로 표시되면 쓰기 불가능)
x : execute가 가능 ( – 로 표시되면 실행 불가능)
그러고 나면 총 3개의 rwx rwx rwx 로 구분이 되어져 있다.
이는 순서대로, 소유자, 그룹, 공개 권한을 의미한다.
다시 testpermission 을 해석해보면,
testpermission은 디렉터리이며, 소유자는 rwx 즉 읽고 쓰고 실행이 모두 가능하며, 소유자가 속한 그룹 또한 rwx, 공개 권한은 rx 읽고 실행만 가능하다는 뜻이 된다.

이 권한을 2진수로 쉽게 표현할 수 있다.
가능하면 1을, 불가능하면 0을 쓰게 된다.
따라서, rwx의 경우에는 2진수 111로 표현되게 되고 이는 10진수로 표현하면 7이 된다.
소유자, 그룹, 공개 권한을 각각 rwx에 대한 2진수로 표현하고, 이것을 10진수로 변환하면 된다.
디렉터리 구분에 대해서는, 디렉터리의 경우 1을, 아닐 경우 0을 쓴다.

다시 그림을 보면 다음과 같은 명령어를 사용하여 testpermission의 권한을 변경했다.
chmod 0600 ./testpermission/ -R
chmod 는 권한을 변경하는 명령어이다.
앞의 0600은 변경할 권한을 의미한다.
600 이기 때문에, 소유자 rw, 나머지 모두 불가능이다.
변경된 권한은 따라서,
drw——-
로 변경된것을 확인할 수 있다.

원래의 권한으로 되돌리려면,
chmod 0775 ./testpermission/ -R
을 이용하면 된다.
덧붙여서 -R 옵션은 디렉터리의 하위 폴더와 파일 모두의 권한을 같이 바꾸겠다는 의미이다.

댓글 남기기