Linux 권한 관리 chmod 를 알아보자
4월 9일(게시일) 기준 국내/외 핫 이슈 :
“코로나바이러스” , “코스피1807.14” , “트럼프 미국 대통령 WHO 에 자금 지원 중단?”
Permission Denied
또 permission denied…?
리눅스 파일 권한에 대한 설명은 이전 글인
Linux 권한(permission) 정리!
를 참고하시면 됩니다.

리눅스 파일 시스템을 사용하다 보면, 항상 흔하게 겪는 일이 Permission denied, Access Denied 등일 것 이다.
이를 해결 하기 위해선 필수적으로 알아야할 커맨드들이 있다.
$ chmod / chown / chgrp
이번에 설명할 내용은,
chmod
Linux 권한 관리 chmod 를 할 때, 사람마다 하는 방법이 조금 다양하다 (사실 2가지 방법)
- 숫자로 변경하기
- 권한 인터페이스로 변경하기
하지만 가장 일반적인 방법은 숫자를 활용하는 방법일 것이다. 어디서 많이 들어본 것 같은 숫자, 777
[숫자로 변경하기]
777 들어본 적은 있을 것이다. 혹은 이미 Permission denied 에 대해 에러를 검색한 사람은 한번쯤은 봤을 법.
(잘못된 problem solving일 확률이 매우 높다!!!!!!)
이미 앞선 포스트에서 말했듯이,
리눅스의 파일시스템은 (human readable) -wrxwrxwrx 의 형태로 되어 있다
컴퓨터를 공부한 사람이라면, 2-진법에 대해서 공부한 적이 있을 것이다.
왜 2-진법에 대해서 갑자기 말하냐고?
7을 2진법으로 바꾸면 111 이다.
거두절미 하고,
7
=> 1 1 1
=> w r x
따라서 7은 모든 권한을 준다는 의미가 된다.
이해를 돕기 위해, 740 (이런 권한을 사실 써본적은 없다)
7 | 4 | 0 | |
---|---|---|---|
권한 | 111 | 100 | 000 |
wrx | w– | — | |
모든 권한 부여 | 쓰기 권한 부여 | 모든 권한 없음 |
만약 명령어로
$ chmod 740 helloworld.txt
한다면,
- 사용자(owner/user) 에겐 모든 권한 부여
- 그룹(group) 에겐 쓰기 권한 부여
- 타 사용자(other) 에겐 모든 권한 제한
만약 무슨말인지 모르겠다면…
Linux 권한(permission) 정리! 를 참고해주세요
[권한 인터페이스로 변경하기]
왜, 굳이 권한 항목에 대해서 설명할 때,
사용자(owner/user), 그룹(group), 타 사용자(other) 라고, 영어까지 표기해가면서 썼을까?
바로 인터페이스를 사용하기 위함이다. (물론, 아니다)
$ chmod o+w helloworld.txt
이전, 숫자로 변경하기 시에는 o+w 대신에 숫자가 들어갔다. 그렇다면 지금 나온 o+w 는 무엇을 의미할까?
o+w : 다른 사용자(other) 에게 (w)rite 권한을 부여
를 나타낸다.
물론 권한을 뺏을 수도 있다.
o-w : 다른 사용자(other) 에게 (w)rite 권한을 뺏음
설명을 덧붙이자면,
================================
앞에 나온 o 는 (u)ser/(g)roup/(o)ther 를,
+ 는 +/- 를,
w 는 w/r/x 를
================================
사용하여 파일권한을 관리할 수 있다.
이해를 돕기 위해, 한가지 더 예를 들어보면,
$ chmod g-r helloworld.txt
이는, 그룹에 대한 읽기 권한을 뺏음 을 나타낸다.
이제 permission denied 에러에 대해서 stackoverflow를 검색해서 777 하는 일은 없도록 하자!