개발_기타/미분류

리눅스 파일 권한과 chmod, 특수 권한 (SetUID, SetGID, Sticky-Bit)

zuyo 2022. 3. 27. 13:38
반응형

리눅스 파일 권한

권한 보는 법

ex) drwxrw-r—

  • 1번째 문자 : 파일의 종류(- : 파일 / d : 디렉토리 / l : 링크) → d : 디렉토리
  • 2~4번째 문자 : 소유주 권한 → rwx : 읽기, 쓰기, 실행 가능
  • 5~7번째 문자 : 소유 그룹 권한 → rw- : 읽기, 쓰기 가능
  • 8~10번째 문자 : 나머지 유저 권한 → r— : 읽기 가능

권한 계산하는 법

1번째 문자(파일 종류)를 제외한 뒤,

소유주, 그룹, 나머지 권한을 각각 2진수로 나타내면

rwx/rw-/r— = 111/110/100 = 764

chmod 644 [파일명]의 경우, 해당 파일 권한을 rw-/r—/r— 으로 수정한다.

chmod

파일의 권한을 수정하는 명령어

# 사용법
chmod [권한] [파일명]

# 예
# 파일 소유자는 전 권한, 소유 그룹에는 읽기, 실행권한, 그 외 유저는 읽기 권한만 부여하고 싶은 경우
# 파일 소유자 : rwx = 111 = 7
# 그룹 : r-x = 101 = 5
# 그 외 : r-- = 100 = 4
chmod 754 파일명

특수 권한

권한에 r, w, x가 아닌 s라던가 t가 들어가 있는 건 특수 권한이다.

s (SetUID, SetGID)

  • 일반 유저가(x 권한만 있다면) 파일 소유자, 소유그룹의 권한을 빌리는 것.
  • 예로, 어떤 프로그램의 권한이 rwx r-x r-x 인 경우라면 일반유저는 그 프로그램을 실행하는 건 가능하나, 저장과 같은 작업은 불가능하다. 허나 rws r-x r-x 라면 일반유저도 소유자의 권한(rwx)을 가지기 때문에 모든 작업이 가능하게 된다. 이를 SetUID라 한다.
  • 단, 일반 유저가 실행 권한이 없는 경우(rws r-x r—), SetUID 권한이 있을지라도 실행을 할 수 없으므로 무효하다.
  • 숫자로 읽을 때는 앞에 숫자 4를 붙인다. ex) rwsr—xr-x = 4755
  • 마찬가지로 SetGUI은 소유 그룹의 권한을 빌리는 것으로, 앞에 2를 붙인다. ex) rwxrwsr-x = 2775 
  • 보안에 취약하므로 정말 필요한 경우가 아니라면 잘 사용하지 않는다.

t (Sticky-Bit)

  • 디렉토리에만 적용되는 권한.
  • 일반 유저들도 디렉토리 내에서 파일 및 디렉토리 생성은 가능하나, 그 파일의 수정 및 삭제는 그 파일(디렉토리)의 생성자와 superuser만 가능하다. 게시판의 게시글과 비슷한 개념이라고 보면 된다.
  • 리눅스의 tmp 디렉토리(/private/tmp)가 Sticky-Bit로 설정되어 있다. (drwxrwxrwt)
  • 앞에 숫자 1이 붙는다. ex) rwxrwxrwt = 1777
반응형