카테고리 없음

[파일 명령어] Linux 파일 시스템의 퍼미션(Permission) 변경 명령어

엔지니어 은성 2021. 9. 15. 10:29

▶ 파일의 퍼미션 변경

사용방법 

# chomod [mod] [파일 이름] ; 상대 모드 , 절대 모드를 통해 파일의 퍼미션 변경

 

▶ 상대 모드 (symbolick method )

기호 의미
u user
g group
o other
a all
+ 추가
삭제
= 지정
s 소유자 또는 그룹만 실행
r 읽기
w 쓰기
x 실행
# chmod o+rw file1 
# ls -l file1 
# chomod a+x,g-r file1
# ls - l

▶ 절대 모드 (수로 표현) 777

소유자(user) 그룹(group) 나머지(other)
r w x r w x r w x
4 2 1 4 2 1 4 2 1
2^2 2^1 2^0 2^2 2^1 2^0 2^2 2^1 2^0

▶ 절대 모드 예시

# rwxrw-r-- 764

소유자(user) 그룹(group) 나머지(other)
r w x r w x r w x
4 2 1 4 2 1 4 2 1
2^2 2^1 2^0 2^2 2^1 2^0 2^2 2^1 2^0
4 2 1 4 2   4    

▶ 특별한 퍼미션

  • 리눅스 권한은 소유자, 그룹, 나머지 사용자 세부류로 나누며 각각 파일에 대한 권한을 읽기, 쓰기, 실행의 세 가지로 나타냄 
  • 관리자의 입장에서 시스템의 모든 사항을 고려해야 하기 때문에 특별한 권한을 사용하여 시스템 관리의 효율성을 높인다.
  • SetUID 4000, SetGID 2000, sticky bit 1000

 

▶ SetUID(4000) 퍼미션

  • 일반적으로 x 권한으로 실행되면 실행한 사용자의 권한으로 실행됨 
  • SetUID가 적용되면 파일이 실행되는 동안 실행한 사용자가 아닌 파일의 소유자 권한을 부여하게 된다.
  • 소유자의 퍼미션 값에 실행 권한에 x가 아닌 s로 명시
  • passwd를 변경하는 과정에서 /etc/shadow 파일의 내용을 읽거나 쓸 수 있어야 변경한 패스워드를 기록할 수 있기 때문에 passwd 파일에는 SetUID가 걸려있고 소유자가 root로 설정되어있음

절대모드 755의 권한에 SetUID 권한 적용

절대 모드 + 4000 - > 실행한 사용자 권한으로 실행됨

 

▶ SetGID 퍼미션 (2000)

  • 파일 실행되는 동안 그룹 소유주의 권한을 갖게 됩니다.
  • 실행 파일뿐만 아니라 디렉터리에도 명시될 수 있음
  • 적용되면 그룹 소유자의 퍼미션 값에 s로 표시됩니다 
    절대모드 755의 권한에 SetGID(2000) 권한 적용
    dir-test 디렉터리 생성, 하위 디렉터리 dir2 생성  dir2 하위 디렉터리에 2755 권한 SetGID가 부여되어있는 것을 확인할 수 있음

▶ Sticky Bit(1000) 퍼미션

  • 디렉터리에 부여되는 권한으로 모든 사용자가 읽고 쓰고 삭제가 가능하다. 
  • 단 삭제는 오로지 소유주만 가능하다.
  • 권한이 적용되면 other 퍼미션의 실행 권한이 x가 아닌 t로 명시
  • 대표적인 sticky bit가 적용된 디렉터리는 /tmp와 /var/tmp가 있음 

▶ umask 

- 현재 존재하지는 않지만 앞으로 생성될 파일, 디렉터리의 퍼미션을 설정하기 위한 Mask값을 설정하거나 확인하는 쉘 내부 명령어 

옵션 -S로 퍼미션 값을 기호로 표현

▶umsk [옵션] [퍼미션] 

umask값 000 001 002 022
파일의 기본권한 666 666 664 644
디렉토리 기본권한 777 776 775 755