본문 바로가기

OS/unix

unix/linux 퍼미션 권한 정리

리눅스 명령어에서 ls-al명령어를 커멘드에 입력하게 되면 





그림에서 보는것 과 같이 drwxr-x.... 이런 그림이 보일 것이다. 이것은 파일에서 쓰이는 권한 에 관련된 것인데

앞의 d라는 것은 디렉토리라는 뜻이고 


r = 읽기 w = 쓰기 x = 실행 권한을 가지고 있다는 것이다. 이것들을 시스템 상황에 맞게 다중 호스트 시스템 관리

자가 권한을 변경 해 줄 대 사용하는데 그 명령어는 chmod [권한숫자] [filename] 으로 나타난다. 

여기서 말하는 권한숫자표기법에 대해 알아보면 rwx 는 2진수 형태로 나타난다. r = 4 w = 2 x = 1 로서 이것을 

더하면 7이라는 숫자가 나온다. 결국 앞에 숫자는 유저권한 중간숫자는 그룹권한 마지막 숫자는 other 권한으로 

나뉘는데 이것들이 모두 사용할 수 있게 된다면 권한숫자는 777이 된다. 예를들어 만약 r-x 라면 이것은 1+4 5가 되는 것과 똑같다.

이것으로 간단하게 파일의 읽기 쓰기 실행 권한을 조정 할 수 있다.

추가적으로 나오는 UMASK 라는 개념도 알아보면 일반적인 새로운 파일과 디렉토르들은 생성시 기본적 권한을 

가진다. 파일의 경우 rw-rw-rw(666), 디렉토리의 경우 rwxrwxrwx(777)의 권한을 초기 생성시에 가지게 되는데,

etc/profile 에 설정 되어있는 MASK값에 영향을 받게 된다. 이 UMASK는 일반적으로 EX-OR 연산을 사용하게 되

는데, (EX-OR 연산은 서로 다른 수 일 경우 1 이된다.) 


/etc/profile 에 vi 편집기도 들어가보면



umask 값이 022 인것을 알 수 있다.


보통 파일 생성시 기본 값이  r w x r w x  r w x  

           1 1 0 1 1 0 1 1 0

   MASK  0 0 0 0 1 0 0 1 0  ->022

  EX-OR  1 1 0 1 0 0 1 0 0  -> 

rw- r-- r-- 이렇게 나타날 것이다.

직점 touch 명령어를 이용하여 제로byte 파일을 생성 하고 ls-al 명령어를 이용하여 파일 내용을 보면



실제로도 나타나는 것을 알 수있다. 결론적으로 정리 하자면 UMASK 값은 파일의 초기 접근권한을 조정하는 

값이라는 것을 알 수 있다.