Skip to main content

chmod

chmod(change mode)는 Linux 또는 Unix 계열의 운영체제에서 파일 또는 디렉터리의 접근 권한을 변경하는 명령어이다.

(여담이지만, Havard CS50 강의에서 chmod를 한 단어처럼 [tʃɜmoʊd]로 발음했다.)


chmod 권한들

1. Read (r, 4)

파일을 읽거나 디렉터리를 볼 수 있는 권한이다.

2. Write (w, 2)

파일을 수정 또는 삭제할 수 있는 권한이다.

3. Execute (x, 1)

파일을 실행할 수 있는 권한이다.

4. No permission (0)

권한이 없음을 나타낸다.


숫자로 조합한 chmod 권한

1. Owner (u)

소유자에게 적용되는 권한이다.

2. Group (g)

그룹에 적용되는 권한이다.

3. Others (o)

파일 소유자나 그 그룹의 멤버가 아닌 사용자에게 적용되는 권한이다.

4. All (a)

모든 사용자에게 적용되는 권한이다.


권한 연산자

1. +

지정된 모드들은 지정된 클래스들에 더한다.

2. -

지정된 클래스들로부터 지정된 모드들은 지운다.

3. =

지정된 클래스들을 위해서 지정된 모드들이 정확한 모드들로 만들어지게 된다.


Use Case

# file을 소유자만 읽고 쓸(4 + 2) 수 있다.
$ chmod 600 file

# file에 대해 모두에게 실행권한(`+x`)을 부여한다.
$ chmod +x file

# docs 디렉터리 내 모든 파일에 대해(`-R`), 유저에게는 쓰기 권한을 추가(`u+w`)하고, 그룹과 다른 사람들에게는 쓰기 권한을 제거(`go-w`)한다.
$ chmod -R u+w,go-w docs/
Related Links