본문 바로가기
정보보안기사&CISSP관련/System Security

[Day 28] chmod, umask

by minimalist_2022 2020. 9. 7.

접근권한

접근권한 파일 디렉토리 관련 명령어
r 읽기 권한 파일명을 읽을 수 있는 권한 ls
w 쓰기 권한 디렉토리 내에 파일이나 디렉토리를 생성, 삭제할 수 있는 권한 mkdir, touch, rmdir, rm 등
x 실행 권한 디렉토리에 진입할 수 있는 권한 cd

chmod

  • 리눅스에서 파일 또는 디렉토리 접근권한을 변경하는 명령어
대상 u(user), g(group), o(others), a(all)
연산자 +(추가). -(제거), =(지정)
접근권한(문자 표시) 

r(읽기), w(쓰기), x(실행) 
[예] daemon.c 파일의 group에 실행 권한 추가, others에 x 권한 설정
chmod g+x,o=x daemon.c
접근권한(8진수 표시)

4(읽기), 2(쓰기), 1(실행) 
[예]  daemon.c 파일 user, group에 rw권한 설정, others r권한 설정
chmod 664 daemon.c

 

umask

  • 앞으로 만들어질 파일에서 제거할 권한을 명시한 것
  • 일반 파일을 생성할 때 접근권한은 666에서 umask로 지정한 값을 빼고, 디렉토리일 경우 777에서 umask로 지정한 값을 뺌
  • 보통 group, others의 쓰기 권한에 제한을 두는 022를 많이 사용

[예] 파일 666, umask 333일 경우 파일 최종 접근권한

  • 계산방법1

 파일 기본 접근권한에서 umask 의 권한 제거(뺄셈 아님.  umask에 설정된 권한을 빼줘야 함)

파일 기본접근권한 666 rw-rw-rw-
umask 333  -wx-wx-wx
파일 최종 접근권한 444 r--r--r--

 

  • 계산방법2

1) umask(333)를 NOT(~, 비트열 반전) 연산하여 줄 권한을 추출

~ 011 011 011

  100 100 100

2) 파일의 기본 접근권한과 AND(&, 둘 다 1인 경우에만 1) 연산 수행

   110 110 110

& 100 100 100

   100 100 100 -> 444