새소식

Study/CLI

CLI 심화(1) - Linux 심화, 사용 권한, Read Write Execute 권한, chmod 명령어, symbolic method, absolute form

  • -

목표

- 사용 권한과 소유자에 대한 이해, 사용 권한 변경

- 파일 소유자와 파일에 적용된 사용 권한을 확인하고 이해할 수 있다 (ls -l)

- 파일에 적용된 사용 권한을 변경할 수 있다 (chmod)

 

 

사용 권한( Read, Write, Execute 권한 )

mkdir linux
nano helloworld.js

컨트롤 + X 누르고 Y 누르면 

파일 네임 설정 엔터 누르면 저장완료!

 

고대로 터미널에 ls -l 을 해보면 이렇게 둘다 잘 뜬다

js 파일은 -rw-r--r-- 

linux 폴더는 drwxr-xr-x

첫 시작에서  - 은 not directory, d 는 directory를 나타낸다

r 은 read permission(읽기 권한), w 는 write permission(쓰기 권한), x 는 execute permission(실행 권한) 을 나타낸다

 

helloworld.js의 권한은 rw-r--r--  소유자는 읽기와 쓰기가 가능하고 다른 사용자 그룹은 읽기만 가능하다

linux 폴더의 권한은 rwxr-xr-x  소유자는 읽기, 쓰기, 실행 가능 다른 사용자 그룹은 실행과 읽기만 가능하다

 

추가로 보자면

맨 왼쪽은 type이고 rw-rw-r-- 이 부분은 엑세스모드(access mode) 라고 한다.

1 다음에 나오는 첫번째 이름은 owner (소유자)고 두번째 이름은 group이다.

 

user, group, other

user

: 파일의 소유자. 기본적으로 파일을 만든 사람이 소유자가 된다. 그래서 user를 소유자라고도 한다.

 

group

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

 

other

: 파일에 엑세스 권한이 있는 다른 user. 파일을 만들지 않은 모든 user를 의미.

   other 권한을 설정하면 해당 권한을 global 권한 설정이라 볼 수 있다.

 

echo로 기존에 만들어뒀던 파일에 'hi'를 추가한다 > cat 파일명 을 해보면 hi가 잘 뜨는 걸 확인할 수 있다.

반면 다른 사용자로(파일을 만들지 않은 사람) echo 'hello' 를 추가해보려고 하면 Permission denied(권한 거부)가 뜬다.

 

 

 

 

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

- change mode

- 폴더나 파일의 rwx 권한을 변경할 수 있다.

- OS에 로그인한 사용자와 폴더나 파일의 소유자가 같을 경우 chmod로 폴더나 파일의 권한을 변경할 수 있다.

* 만약 사용자와 소유자가 다를 경우 관리자 권한을 획득하는 명령어 sudo 를 이용해 권한을 변경할 수 있다.

 

권한을 바꾸는 방식 2가지

1. Symbolic method

- Access class, Operator, Access Type으로 구분

엑세스 클래스 연산자 엑세스 타입
u (user) + (add access) r (read)
g (group) - (remove access) w (write)
o (other) = (set exact access) x (execute)

* 엑세스 클래스에 추가로 a (all)도 있다.

symbolic method로 권한을 바꾸는 방법은 간단하다

chmod <access calss> <operator> <access type> filename

예를 들어 그룹에서 쓰는 권한을 빼고 싶다 하면

chmod g-w 파일명

이렇게 쓰면 된다. (더하고 싶으면 + )

소유자(user)의 권한도 변경할 수 있다. u-r 을 해버리면 내가 만들었어도 권한거부로 읽을 수 없다.

 

a=rw 이렇게 하면 모든 class의 권한이 rw가 된다. 꼭 한 개의 class, type만 쓰는 건 아니라는거!

 

 

2. Absolute form

- 숫자 7까지 나타내는 3bits의 합으로 표기

Permission Number
Read (r) 4
Write (w) 2
Execute (x) 1

솔직히 처음보고는 너무 난감했다

만약 user는 rwx, group은 rw, other은 r로 권한을 변경한다면

chmod 764 파일명

이런 식으로 입력하면 된다.....

 

나는 symbolic method 방식으로 많이 사용하게 될것같다... absolute form은 너무..............

 

출처 코드스테이츠, 생활코딩

 

Contents

포스팅 주소를 복사했습니다.

이 글이 도움이 되었다면 공감 부탁드립니다.