권한

FeelSoo·2022년 5월 3일
0

CodeStates

목록 보기
26/43

이런 문구 어디서 많이 봤을 것이다. 위의 예시는 파일에 대한 읽기 권한만을 가지고 있을 때 나오는 문구다. 파일을 수정하기 위해서는 쓰기 권한을 획득해야 한다.

이처럼 파일을 작업하기 위해 사용할 수 있는 권한의 종류에는 3가지가 있다.

read --- 읽기

write --- 쓰기

execution --- 실행

바탕화면에 linux라는 폴더와 hello world 라는 파일을 만든 후 ls -l을 통해 현재 디렉토리 ( 바탕화면 ) 의 모든 파일들을 확인해본다.

가장 좌측에 나와있는 -rw... , dr... 들은 권한들의 나열을 의미한다.

같은 권한이 3번 반복되는데 그것은 사용자와 그룹, 나머지에 대한 권한을 표시하기 때문이다.

사용자 같은 경우에는 pc에 등록되어있는 os 계정 사용자, 그룹 같은 경우는 해당 pc가 묶여있는 팀이 될 수 있다.

r은 read, w는 write, x는 execution으로 파일 같은 경우 소유자만 읽기 쓰기가 가능하고 이외의 경우는 읽기 만 가능함을 확인할 수 있다.

폴더의 경우 가장 좌측에 d의 의미는 directory이고 파일의 경우에는 not directory의 의미로 -를 표시한다.

폴더의 소유자는 실행 권한을 갖고 있음을 알 수 있는데 실행은 접근 권한을 의미한다.

실행 권한이 없다면 cd 명령어를 통한 폴더 내부로의 접근이 불가하다. 아래는 cd 명령어를 통해 홈에서 바탕화면 그리고 폴더로 진입한 모습이다.



권한은 명령어 chomd로 변경할 수 있다.


OS에 로그인한 사용자와, 폴더나 파일의 소유자가 같을 경우에 명령어 chmod 로 폴더나 파일의 권한을 변경할 수 있고

만약 OS에 로그인한 사용자와, 폴더나 파일의 소유자가 다를 경우에는 관리자 권한을 획득하는 명령어 sudo 를 이용해 폴더나 파일의 권한을 변경할 수 있다.

권한을 변경하는 방식에는 2가지가 있다.

첫 번째는 더하기(+), 빼기(-), 할당(=)과 액세서 유형을 표기해서 변경하는 Symbolic method

두 번째는 rwx를 3 bit로 해석하여, 숫자 3자리로 권한을 표기해서 변경하는 Absolute form

액세스 권한의 주체, 연산자, 권한 순으로 작성하면 된다.


chmod g-r filename # removes read permission from group
chmod g+r filename # adds read permission to group
chmod g-w filename # removes write permission from group
chmod g+w filename # adds write permission to group
chmod g-x filename # removes execute permission from group
chmod g+x filename # adds execute permission to group
chmod o-r filename # removes read permission from other
chmod o+r filename # adds read permission to other
chmod o-w filename # removes write permission from other
chmod o+w filename # adds write permission to other
chmod o-x filename # removes execute permission from other
chmod o+x filename # adds execute permission to other
chmod u+x filename # adds execute permission to user

------------[커맨드] symbolic method 사용 예시

chmod a=rw helloworld.js # -rw-rw-rw-
chmod u= helloworld.js # ----rw-rw-
chmod a+rx helloworld.js # -r-xrwxrwx
chmod go-wx helloworld.js # -r-xr--r--
chmod a= helloworld.js # ----------
chmod u+rwx helloworld.js # -rwx------


-----[커맨드] chmod 명령어와 symbolic method로 helloworld.js 파일의 권한을 변경합니다.




Absolute form에서는 다음과 같이 사용될 수 있다.

# u=rwx (4 + 2 + 1 = 7), go=r (4 + 0 + 0 = 4)

chmod 744 helloworld.js # -rwxr--r--

[커맨드] chmod 명령어와 Absolute form으로 helloworld.js 파일의 권한을 변경합니다.

profile
세상은 넓고 배울건 많다

0개의 댓글