권한(permission)에 대해
리눅스에서 권한이란?
- 리눅스의 모든 파일과 디렉토리는 권한을 가지고 있다.
- 리눅스의 파일시스템 상에 권한에 대한 정보를 저장하는 부분이 있다.
- 권한은 시스템 상에 존재하는 파일들에 대한 읽기, 쓰기, 실행에 대한 접근 여부를 결정한다.
각 파일 및 디렉토리의 권한(퍼미션)을 확인하는 방법

- ls -l 명령어를 통해 각 파일 및 디렉토리의 권한 상태를 확인할 수 있다.
권한과 관련된 파일 및 디렉토리 명령어

권한을 설정하는 방법
chmod 명령어
- chmod 권한 파일및디렉토리이름
- 옥텟 모드
- 4: 읽기 ( r )
- 2: 쓰기 ( w )
- 1: 실행 ( e )
옵션으로 -R을 주면, 해당 디렉토리 하위 모든 파일 및 디렉토리까지 권한을 변경한다.
umask 명령어
- 기본적으로 디렉토리는 777 파일은 666이 최대 권한이다.
- 디렉토리 또는 파일에 따라 최대권한에서 umask를 뺀 값이 생성하는 파일 및 디렉토리의 권한이 된다.
- umask의 디폴트 값은 022 이며, umask를 변경해도 재부팅하면 디폴트 값으로 초기화 된다.
- umask는 네자리다. 사실 권한은 네자리고 맨 앞자리는 특수 권한설정이다. 특수 권한에 대한 설명은 아래에서 한다.
chown 명령어
- 파일, 디렉토리의 소유자(또는 그룹)를 변경하는 명령어
chown 소유자이름:그룹이름 파일(디렉토리)이름
- 위와 같이 사용하며, 변경할 '소유자이름'만 쓰거나 ':그룹이름'만 따로 쓰는 방식으로도 쓸 수 있다.
- 옵션으로는 -R이 있다. 이는 모든 하위 디렉토리의 파일 소유자를 변경한다.
특수 권한
세가지의 특수 권한
- 사실 권한 4자리고 기존의 세자리 앞에 한자리가 더 붙는다. 평소엔 보이지 않으나 이 값에 4, 2, 1을 부여해 특수 권한을 부여할 수 있다.
setUID
- 권한 값은 4
- 파일에 부여하는 권한
- 소유자 실행권한에 S로 표시됨
- 소유자 외 사용자가 파일을 실행할 때, 소유자의 권한으로 실행할 수 있게 해주는 권한
setGID
- 권한 값은 2
- 파일에 부여하는 권한
- 그룹 실행권한에 S로 표시됨
- 소유그룹 외 사용자가 파일을 실행할 때, 소유그룹의 권한으로 실행할 수 있게 해주는 권한
stickyBit
- 권한 값은 1
- 디렉토리에 부여하는 권한
- other 실행권한에 T로 표시됨
- 디렉토리를 자유게시판처럼 쓸 수 있게 해주는 권한. 누구든지 스티키비트 디렉토리에서 읽고, 쓰고, 실행할 수 있다. 권한777과 비슷하다.
- 단, 다른 사용자의 파일을 변형 또는 삭제하는 것은 불가능하다. 이 점에서 777과 다르다.