chmod

  • 각 파일/디렉토리의 접근권한을 설정하는 명령어
  • 총 9자로 이루어져 있으며, 각 파일마다 user/groups/others의 세 종류의 유저에 대한 권한을 설정한다.
  • 각 유저마다 읽기(read: r)/쓰기(write: w)/실행(execution: x)의 3개의 권한을 각각 판별한다.

권한 보기

ls -l
total 12
drwxr-x--- 4 root root 4096 Sep 10 01:47 cache
-rw------- 1 root root 5643 Sep 10 03:35 config
  • drwxr-x---를 쪼개면 d, rwx, r-x, ---로 나뉜다.
    • d는 폴더인지(d) 파일인지(-) 구분한다.
    • rwx소유자에 대한 권한으로 읽기, 쓰기, 실행의 세 권한을 모두 갖는다. 즉, vi,nano,cat 등으로 내용을 확인가능하며, 텍스트 편집기나 sed 모듈로 수정 가능하고, bash $FILE등의 인터프리터로 실행 가능하다는 뜻이다.
    • r-x소유자와 동일한 그룹에 위치한 다른 사용자에 관한 권한으로 읽기와 실행의 권한만 갖는다. 내용을 확인가능하고 실행할 수 있으나 수정은 불가능하다. 아마 vim 등의 편집기로 열면 좌측 하단에 [readonly]라고 떠있을 것이다.
    • ---소유자와 동일한 그룹이 아닌 다른 사용자에 대한 권한으로 아무런 권한도 갖지 않는다. 내용을 확인 불가능하고, 수정할 수 없고, 실행할 수도 없다.

파일 권한 수정하기

chmod PERMISSION FILENAME
  • PERMISSION은 권한을 의미한다. 각 권한값은 더하거나 뺄 수 있으며 연산자로는 +-를 사용한다.
  • 즉, chmod +x script.sh는 소유자, 그룹, 다른 사용자 모두에게 실행 권한(x)를 부여하겠다는 뜻이다. 반대로 chmod -w scipt.sh는 모든 실행자에게서 수정 권한을 뺏는다는 뜻이다.
  • 세 종류의 사용자 중 특정 사용자에게만 권한을 부여할 수도 있다. chmod u+x는 사용자에게만 실행 권한을 부여한다.

8진수로 권한 표시하기

  • 앞서 말한 r, w, x의 세 권한은 각각 8진수로 표현할 수도 있다. r=4, w=2, x=1의 값을 갖는다.
  • , chmod 777은 -rwxrwxrwx과 동일한 권한을 의미한다.
  • 예를 들어, 위에 쓴 대로 모든 소유자에 대해 실행 권한을 부여하고 싶다면 chmod 111로 선언하면 된다. 단, 이렇게 권한을 8진수로 설정하는 경우에는 권한을 추가로 부여하거나 박탈하는 것이 아니라, 아예 새로운 권한을 설정하는 것이기 때문에 특별한 경우가 아니라면 소유자에 대한 권한은 7로 설정하는 것이 옿다.
  • chmod 711==-rwx--x--x

+ Recent posts