오늘도 삽질중

리눅스 심화 - 사용권한 본문

카테고리 없음

리눅스 심화 - 사용권한

해빋 2021. 11. 8. 10:21

 

엑셀 파일을 그냥 읽기 전용으로 볼 때는 수정할 수 있는 권한이 없지만, 편집 사용 버튼을 눌렀을때 파일을 수정할 수 있는 권한을 획득하게 된다. CLI에서도 파일을 보거나, 수정할때, 실행할 때에도 마찬가지로 권한이 필요하다.

 

Linux에서 사용하는 폴더와 파일에는 권한이 있다. 그리고 그 권한은 읽기(Read), 쓰기(Write), 실행(Execute)이다.

 

<목차>

  • 사용권한 - 폴더와 파일의 권한으로 폴더인지 파일인지 구분하는방법, 폴더나 파일의 사용 권한을 변경하는 방법

 

 

Read, Write(생성,삭제,수정), Execute 권한


폴더인지 파일인지 확인하기

 

폴더 생성 / 파일 생성

mkdir linux // 폴더 생성
nano helloworld.js // 파일 생성
  • 코드를 작성한 다음 Ctrl + X, Y, Enter 를 순서대로 입력하면, 새로운 파일을 저장할 수 있습니다.
  • 명령어 ls -l을 프롬프트에 입력하고 엔터키를 누르면 다음과 같이 출력된다.

ls -l을 입력하면 터미널에 나타는 출력. username은 사용자 이름이다.

터미널에 출력왼 결과 중에서, 가장 왼쪽의 표현을 살펴보겠다.

 

파일 hello.js는 -rw-r--r-- 이라고 출력이 되었고

폴더 thdud은 drwxr-xr-x라고 출력이 된다.

 

표현의 첫 시작인 -와 d는 각각 not directory와 directory를 나타낸다.

이어지는 r, w, x는 각각 read mpermission, write permission, execute permission으로 읽기 권한, 쓰기 권한, 실행 권한을 나타낸다. 3번에 걸쳐 나타나는 이유는 사용자와 그룹, 나머지에 대한 권한을 표시하기 때문이다.

파일 hello.js의 권한은 rw-r--r-- 으로, 소유자는 읽기(r)와 쓰기(w)가 가능하고

다른 사용자 그룹은 읽기(r)만 가능하다는 의미이다.

폴더 thdud의 권한은 rwxr-xr-x 으로, 소유자는 읽기(r)와 쓰기(w), 실행(x)이 가능하고

다른 사용자 그룹은 실행(x)와 읽기(r)만 가능하다.                           

출처: 코드스테이츠

 

👉  user, group, and other

🎟 user : 

 user은 파일의 소유자이다. 

 

🎟 group :

group에는 여러 user가 포함될 수 있다. 그룹에 속한 모든 user은 파일에 대한 동일한 group 엑세스 권한을 갖는다.

많은 사람이 파일에 엑세스해야 하는 프로젝트가 있다고 가정한다. 각 user에게 일일이 권한을 할당하는 대신에 모든 user을 group에 추가하고 파일에 group 권한을 할당할 수 있다.

 

🎟 other : 

파일에 대한 액세스 권한이 있는 다른 user이다.  파일을 만들지 않은 다른 모든 user를 의미한다. 따라서 other권한을 설정하면, 해당 권한을 global권한 설정이라고 볼 수도 있다.

 

👉  chmod : 권한을 변경하는 명령어

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

 

명령어 chomd 로 권한을 변경하는 방식 2가지

  • 첫 번째는 더하기(+), 빼기(-), 할당(=)과 액세서 유형을 표기해서 변경하는 Symbolic method입니다.
  • 두 번째는 rwx를 3 bit로 해석하여, 숫자 3자리로 권한을 표기해서 변경하는 Absolute form입니다

symbolic method는 액세스 클래스, 연산자, 액세스 타입으로 구분한다.

 

출처: 코드스테이츠

명령어 chmod 뒤에 변경할 권한을 입력한다. 액세스 클래스의 u,g,o,a를 변경할 조건에 따라 조합하여 입력하고, 연산자와 액세스 타입을 순서대로 입력한다. 다음은 명령어 chmod를 입력한 예시와 결과이다.

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
chmod a=rw hello.js # -rw-rw-rw-
chmod u= hello.js # ----rw-rw-
chmod a+rx hello.js # -r-xrwxrwx
chmod go-wx hello.js # -r-xr--r--
chmod a= hello.js # ----------
chmod u+rwx hello.js # -rwx------

Absolute form은 숫자 7까지 나타내는 3 bit의 합으로 표기한다.

만약 user는 rwx를, group와 other은 r--로 권한을 변경하려고 한다면, 위 표에 나와있는 숫자의 합을 user, group, other순으로 입력하여 사용한다.

# u=rwx (4 + 2 + 1 = 7), go=r (4 + 0 + 0 = 4)
chmod 744 helloworld.js # -rwxr--r--

<내가 실습>

chmod 777 hello.js

 

chmod go=r hello.js

 

chmod u= hello.js

 

chmod o-rwx hello.js

 

chmod a=rw hello.js

 

 

동영상이랑 같이보면 이해가 잘간다

Comments