(cont'd 2010/11/05 - [Research/Ubuntu] - File/Directory 권한 설정하기 (01))
chmod 명령은 file과 directory의 접근 권한을 변경시켜 줍니다. 아래 몇몇의 chmod 명령예를 통해, 그 사용법을 확인해 봅시다.
명령 | 원래의 권한 | 새로운 권한 | 설명 |
chmod 0700 | * | drwx------ | directory의 소유자는 directory 하부의 파일들을 read/write하고 현재의 directory로 변경할 수 있다. other users(root 제외)는 접근 권한이 없다. |
chmod 0711 | * | drwx--x--x | 0700 과 동일하다. 다만, other users는 현재의 directory로 변경할 수 있으나, directory의 file을 보거나 변경할 수 없다. 이는 server를 견고하는데 유용한데, 다른이들이 directory의 내용을 열거하는것을 방지하기 때문이다. 그리고, 물론 이미 그 directory에 파일이 있다는 것을 알고 있다면, 그 접근을 허락한다. |
chmod go+r | drwx------ | drwxr--r-- | directory에 read 권한을 추가한다. other user에 x가 없기 때문에, other user는 directory의 내용을 볼 수 없다. |
chmod 0777 chmod a=rwx |
* | drwxrwxrwx | 모든 원한을 열어준다. |
chmod 0000 chmod a-rwx |
* | d--------- | 모든 권한을 닫는다. directory를 보호하기에 좋다. 그러나 root user이외로 실행되는 프로그램에서는 이 directory의 내용을 backup하는데에는 실패할 것이다. |
chmod 666 | * | -rw-rw-rw | file의 read/write 권한을 모두 열어준다. |
chmod go-rw | -rw-rw-rw- | -rw------- | 소유자 이외의 user는 보거나 변경 혹은 삭제할 수 없다. |
chmod 644 | * | -rw-r--r-- | 소유자만이 변경 삭제가 가능하고, 소유자 포함 모든 이는 볼 수는 있다. |
처음의 0은 취소 가능합니다. (즉, 0777 대신 777로 할 수 있습니다.) 그 위치는 특별한 의미를 가집니다.
UID 프로그램(4), GID 프로그램(2), sticky 프로그램(1)의 값을 각각 가지는 8진수로서, 그 명령은 그 값에 따라 실행하게 해줍니다. UID나 GID로 실행하게 되면, 할당된 user나 group 권한으로 실행하게 됩니다.
sticky bit를 directory에 전달하게 되면, user는 자신이 소유하지 않는 디렉토리 하부의 파일을 삭제하거나 이름을 변경할 수 있습니다. /tmp가 그 예가 되겠습니다. 즉, 정확한 권한을 주었으나, user들은 sticky directory의 파일들을 소유하지 않았음에도 파일의 내용을 변경할 수 있습니다.
마지막 권한 문자를 x대신 t를 사용하여 sticky directory로 할 수 있습니다. sticky bit 명령이 실행되면, 사용하지 않더라도 메모리에 상주하게 됩니다. 이는 과거의 unix의 특징이며, 현재 linux에서는 지원하지 않습니다.
-R은 chmod 명령의 유용한 옵션입니다. -R을 사용하면, 하부 directory와 file까지 recursive하게 권한을 변경시켜주도록 합니다.
$ sudo chmod -R 700 /tmp/test $ sudo chmod -R 000 /tmp/test $ sudo chmod -R a+rwx /tmp/test |
-R은 지정한 directory 자체도 적용된다는 것을 명심하십시요.
[출처 : http://greenfishblog.tistory.com/48]
'Academy I > Tech Academy' 카테고리의 다른 글
[Linux]File 속성(Attribute) 변경하기 (0) | 2015.01.02 |
---|---|
[Linux]File 복사, Partition 백업하기 (0) | 2015.01.02 |
[Linux]File system traverse (cd, pwd, dirs, pushd, popd) (0) | 2015.01.02 |
[Linux]File/Directory 권한 설정하기 (03) (0) | 2015.01.02 |
[Linux]File/Directory 권한 설정하기 (01) (0) | 2015.01.02 |
[Linux]File Type 이해하기 (0) | 2014.12.31 |
[Linux]Shell 활용 (03) 간단한 Bash shell script 작성 (0) | 2014.12.31 |
[Linux]Shell 활용 (02) redirect, su(sudo), 환경 변수 (0) | 2014.12.31 |