
유닉스 계열의 시스템에서는 파일과 디렉터리를 권한을 지정할 수 있다. 파일과 디렉터리에 관해 읽기, 쓰기, 실행의 권한을 지정하는 것을 Permission이라고 한다. touch perm.txt라는 파일을 만든다. ls -l perm.txt이라고 하면 파일에 대한 상세 보기를 보여준다. 이때 이 파일이 누구의 것인지 알 수 있다.같은 컴퓨터 내에서 다른 사람이 echo ‘hello’ > perm.txt이러한 명령을 치게 된다면 원래는 수정이 되지만 다른 사람이 실행을 하면 수정이 되지 않는다. ls -l perm.txt의 내용을 살펴보자.
-rw-rw-r— 1 egoing egoing 0 Dec 4 23:19 perm.txt
우선 첫 번째 (-)는 기본적인 파일을 뜻한다.
디렉터리인 경우는 D라는 알파벳으로 되어있다.두 번째(rw-rw-r—)은 액세스 모드라는 것이다. r: read, w: write, - 혹은 x : excute라는 뜻이다. 세 번째는 owner(egoing), 네 번째는 group(egoing)을 뜻한다.
파일의 소유자에서 액세스 모드를 없애기 위해서는 chmod o-r perm.txt라고 친다면 읽기 기능이 사라진다. 다른 사용자가 cat perm.txt를 친다면 Permission denied가 뜨게 된다. 권한을 추가할 때는 chmod o+r perm.txt라고 입력하면 된다. chmod u-r perm.txt라고 한다면 user의 권한을 막아버린다는 뜻이다.
어떤 파일에 대해 실행 가능한 파일로 할 것이냐라고 권한 지정하는 게 실행 권한이다. hi-machine.sh라는 파일을 실행 시키고 싶다면 /bin/bash hi-machine.sh라는 명령어를 입력하면 된다. ./hi-machine.sh라고 하면 실행이 안되는데 이 친구에게 권한을 주기 위해서는 chmod u+x hi-machine.sh;라고 입력하면 된다. 그러면 파일의 내용이 잘 출력이 된다.
chmod o-r perm이라는 명령어를 치면 읽기 권한이 사라진다. chmod o+w perm을 하게 되면 touch test라는 파일을 다른 사용자가 만들어도 생성이 가능하다. 디렉터리 모두를 모드 바꾸고 싶을 때는 chmod -R o+w perm이라고 입력하면 된다.
파일의 권한을 바꿀 때는 chmod 222 perm.txt라고 한다면 모든 사용자가 www가 된다. chmod 444 perm.txt를 하면 모든 사용자가 rrr가 된다. 쓰기와 실행을 같이 하고 싶다면 333를 입력하면 된다. 외울 필요는 없고 인터넷 검색을 하면 된다. chmod a+r perm.txt는 모든 종류의 사용자에 대해 r을 더한다는 뜻이다. chmod a+w perm.txt는 w 값을 가지게 된다는 의미이다.