개발 도중 Permission denied 오류를 너무 많이 겪어서 이 기회에 리눅스 파일 권한에 대해 정리해보면 좋을 것 같아서 글을 적게 되었다.



파일 권한 변경은 파일 소유자(생성자)만 가능하다.
# rw-r--r--
$ chmod 644 test.txt
# rwxrwxrwx
$ chmod 777 test.txt
# rwxr-x--
$ chmod 750 test.txt
# 파일에 대하여 사용자(u)에 읽기 및 쓰기(rw)권한으로 초기화(=)
$ chmod u=rw test.txt
# 파일에 모두(a)에게 읽기,쓰기(rw) 권한으로 초기화(=)
$ chmod a=rw test.txt
# test.txt 의 소유자(u)에게 읽기(r) , 쓰기(w) 권한을 추가 부여(+)
$ chmod u+rw test.txt
# test.txt 의 소유그룹(g)에게 쓰기(w) 권한을 제거(-)
$ chmod g-w test.txt
# 그외 계정에게 모든 권한을 제거(-)
# rwx의 순서는 변경하여도 무방하다. o-rwx = o-wxr
$ chmod o-wxr test.txt
소유권 변경은 오직 루트 사용자만 가능하다.
# test.txt 파일의 소유자를 root로
$ chown root test.txt
# 소유그룹을 mygroup으로 변경
$ chown :mygroup test.txt
# 소유자는 myuser 소유그룹은 mygroup으로 파일 소유자 변경
$ chown myuser:mygroup test.txt
# myfiles 디렉터리 이하 모든 파일 및 디렉터리에 대하여 소유자는 myuser, 소유그룹은 mygroup으로 변경
$ chown -R myuser:mygroup myfiles
# test.txt 파일의 소유그룹을 mygroup로
$ chgrp mygroup test.txt
# 디렉터리 이하 모든 파일과 디렉터리에 대해 그룹을 colors로 변경
$ chgrp -R colors color_files