리눅스 입문 - 허가권

2023. 9. 23. 06:22Linux

우선 설명에 들어가기 앞서 파일의 유형을 살펴보자. 파일의 맨 앞에 위치한 c,d,l등 여러가지가 보일 것 이다.

- : 일반파일

d : 디렉토리 파일 을 뜻하며

특수파일

b - 블록 장치 : 하드디스크나 플로피디스크, CD/DVD같은 저장 장치

c - 문자 장치 : 문자를 읽거나 입력하는 마우스,키보드 등이 여기 속한다.

l - 링크파일 : 다른곳에 링크되어 있는 파일이 있는 바로가기 아이콘 역활을 수행.

p - 파이프

s - 소켓

등으로 나뉜다.

※파일의 허가권(Permission)

파일의 허가권은 사진에 보이는 바와 같이 rwxr-xr-x로 표시되며 

8진수로 표기하면 rwxrwxrwx기준 777로 표기된다. r,w,x의 기능은 다음과 같다.

r - read : 읽을 수 있는 권한. (8진수 표기 = 4)

w - write - 쓸 수 있는 권한. (8진수 표기 = 2)

x - excute - 실행 할 수 있는 권한. (8진수 표기 = 1)

rwx의 묶음이 3개인 이유는 각 묶음마다 사용할 수 있는 범주가 존재하기 때문이다.

이를 끊어서 보면 rwx/rwx/rwx가 되는데 왼쪽부터 소유자(user),그룹(group),기타 사용자(other)

로 나뉘어진다.

허가권은 변경할 수 있는데 그 명령어는 chmod(changemode)이다.

touch로 일반파일 train.txt를 만들고 chmod로 시시각각 허가권이 달라지는것을 알 수 있다.

777 = rwxrwxrwx / 744 = rwx-r--r--

위에서 언급하였듯 r - 4 w - 2 x -1을 잘 기억하도록 하자.

만약 디렉토리 안에 있는 하위 파일들까지 전부 바꾸고 싶다면 -R을 사용해주면 된다.

물론 숫자로만 변경해 줄 수 있지는 않다. 직접적으로 r,w,x를 이용하여 바꿔줄 수 있는데

이때는 u(user 소유자), g(group 그룹), o(other 기타 사용자), a[(all 모든 사용자)(u+g+o)]를 이용하여 각 rwx묶음에 변화를

줄 수 있다.

문자로 허가권을 바꾸어 줄 때에는 +, -, =의 기호를 사용하여 바꾸어주는데 각각의 역활은 다음과 같다.

+ : 허가권 부여

- : 허가권 제거

= : 허가권 지정

만약 전부 바꾸고 싶은게 아닌 user와 group을 바꾸어 주고 싶다면 ,로 분할한다. 

ex) chmod a+rw,g-r train.txt

-----------------------------------------------------------------------------------------------------------------------------------

파일을 처음 생성하면 기본적으로 할당되는 허가권이 있는데 이는 umask에 의해서 결정된다.

이는 만약 관리자가 파일을 생성하였는데 보안에 관련된 디렉토리에서 생성한 파일이라면

아무나 볼 수 없게 만들기 위해서인 것 같다. 

umask의 기본값은 0022이며,

일반 파일의 기본권한은 666(rw-rw-rw), 디렉토리의 기본권한은 777(rwxrwxrwx)이다.

위의 사진을 보면 일반 파일과 디렉토리를 생성해주었는데 허가권이 각각 rw-r--r--(일반파일), rwx-r-x-r-x(디렉토리)인 것을 볼 수있다. 여기서 umask명령어로 umask를 확인해보니 0022이다. 

쉽게 생각해보자면 666 - 0022(umask 값), 777 - 0022(umask 값)을 빼고 만들어졌다고 생각하면 쉽다.

앞의 0은 우선 생각하지말고 666 - 022 = 644(rw-r--r--), 777 - 022 = 755(rwx-r-x-r-x)위에 만들어진 파일들과 똑같다.

umask -S로 문자형식으로도 볼 수 있다.