본문 바로가기
dev/unix-like

[linux] chmod: absolute mode와 특수권한

by 최연탄 2016. 3. 16.
728x90
반응형

chmod: absolute mode와 특수권한


chmod는 지정된 파일의 권한을 변경하는 기능을 가지고 있다.

$ ls -l
-rwxrwxrwx 1 owner group *

  • 접근권한 필드 rwxrwxrwx의 r은 read, w는 write, x는 execution을 나타낸다.
  • 접근권한 필드 중 첫번째 rwx는 소유자의 권한이며
  • read, write, execution의 권한이 없을 경우 '-'로 표시(r--, rw- 등)한다.
  • 두번째 rwx는 그룹 맴버의 권한이고, 세번째 rwx는 소유자 또는 맴버가 아닌 다른 계정의 권한이다.
  • 명령어 사용시 absolute mode와 simbolic mode를 사용할 수 있다.


- absolute mode

absolute mode의 사용 예는 다음과 같다.

chmod 0000 [파일명]

  • 소유자에게 read 권한을 부여하고 싶다면 0400을, write는 0200을, execution은 0100을 사용한다.
  • 그룹 맴버에게 read 권한 부여시에는 0040, write는 0020, execution은 0010을 사용한다.
  • 타인에게 read 권한 부여는 0004, write 권한은 0002, execution 권한은 0001이다.


명령어 수행시 소유자, 그룹 맴버, 타인에게 허용할 접근권한을 한번에 모두 설정한다. 방법은 각각의 권한에 부여된 8진수 숫자를 모두 더한다.

예)

소유자에게만 모든 권한 부여
chmod 0700 [파일명]

모두에게 읽기 쓰기 권한 부여
chmod 0666 [파일명]

소유자에게 모든 권한, 그룹 맴버에게는 read write 권한, 타인에게는 read 권한 부여
chmod 0764 [파일명]


- 특수 권한

  • setuid bit: 소유자가 아님에도 파일 실행 시 일시적으로 소유자 권한을 허용, 권한 코드는 4000
  • setgid bit: setuid bit와 비슷하나 소유자가 아닌 그룹의 권한을 얻도록 허용, 권한코드는 2000
  • sticky bit: 누구나 읽고 쓰기가 가능하지만 소유자와 root만이 삭제할 수 있도록 함, 권한코드는 1000


사용 방법은 위의 부여하고싶은 권한들과 함께 각각의 코드르 모두 더한다.

  • setuid bit가 설정되어있다면 접근권한 필드에는 rwsrwxrwx와 같이 표시된다.
  • setgid bit가 설정되어있다면 접근권한 필드에는 rwxrwsrwx와 같이 표시된다.
  • sticky bit가 설정되어있다면 접근권한 필드에는 rwxrwxrwt와 같이 표시된다.


예)

모두에게 모든 권한을 주고 sticky bit를 설정
chmod 1777 [파일명]

모두에게 모든 권한을 주고 setuid bit를 설정
chmod 4777 [파일명]


반응형

댓글