퍼미션을 변경하는 간단한 예로, 새로운 사용자를 위해 /home 디렉토리에 디렉토리를 하나 만든다고 하자. 우선 root 퍼미션으로 작업해야 하고, 그 다음에는 새로생성한 디렉토리의 소유권을 특정사용자로 변경해 주어야 한다. 그렇지 않으면 사용자가 파일을 사용할 수 없게 된다.유틸리티의 경우에 자기의 고유의 사용자를 갖고 있는 경우가 있다. 일반적으로 소프트웨어 설치의 마지막 단계는 문서에서 지시하는 대로 소유자, 그룹, 퍼미션을 변경하는 일이다.

chown 명령으로 파일의 소유자를 변경하고 chgrp 명령으로 그룹을 변경한다. 리눅스에서는 오직 root 만이 chonw을 실행 할 수 있다.

anysoft 라는 이름의 소프트웨어를 설치한 후 소유자와 그룹을 bin 으로 변경하려면

chown bin anysoft

chgrp bin anysoft

라고 입력하면 된다.

퍼미션을 변경할 때는 chmod 명령어를 사용한다.

chmod +x a.out

플러스(+) 기호는 퍼미션을 추가한다는 의미다. 여기서는 x 퍼미션을 추가한다는 말이 된다.

퍼미션을 제거할 때는 마이너스(-) 기호를 사용한다.

chmod -x a.out

위의 명령어들은 모든 레벨 즉 소유자, 그룹, 타인의 퍼미션을 부여한다.

개별적으로도 퍼미션을 부여할 수 있다.

chmod u+x a.out

러스 기호 앞에 오는 것은 퍼미션 레벨이며 뒤에 나오는 것은 퍼미션 유형이다.

사용자 퍼미션은 u, 그룹 퍼미션은 g, 타인은 o 이다. 사용자와 그룹의 퍼미션을 동시에 부여하려면

chmod ug+x a.out

이라고 하면 된다.

퍼미션을 여려개 부여할 수도 있다.

chmod ug+rwx a.out

chmod에는 위와는 다른 형식의 절대모드 형식이 있다.

절대모드는 비트의 관점에서 생각 해야 한다. 각 레벨에서 세개의 비트는 다음과 같다.

   소유자           그룹             타인

읽기 쓰기 실행   읽기 쓰기 실행   읽기 쓰기 실행

400   200   100      40     20    10       4      2       1

예를 들어 소유자에게 읽기 퍼미션을 부여하고 나머지 사람들에게 아무런 퍼미션을 부여하

지 않으려면 chmod 명령을 다음과 같이 사용한다.

chmod 400 a.out

모든 사람에게 읽기 퍼미션을 부여하려면 다음과 같이 한다.

chmod 444 a.out

+r 모드를 사용하는 것과 비슷하지만 기존의 퍼미션을 모두 지운다는 점에서 다르다.

정확히는 =r 과 같다고 할 수있다.



Posted by gala
l