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/