본문 바로가기
개발/Linux

리눅스 사용권한

by 안뇽! 2021. 10. 5.
반응형

리눅스  사용권한

linux폴더와 helloworld.js 파일을 터미널을 통해 만들어보자.

 

mkdir linux
nano helloworld.js

nano helloworld.js 에는 다음과 같이 입력하자.

  • 코드를 작성한 다음 Ctrl + X, Y, Enter 를 순서대로 입력하면, 새로운 파일을 저장할 수 있다.
  • 위 명령어로 폴더 하나와 파일 하나를 각각 생성하였다. 이번에는 명령어 ls-l 을 프롬프트에 입력하고 Enter(엔터 키)를 눌러보자.

 파일 helloworld.js는 -rw-r--r-- 이라고 출력되었고, 폴더 linux는 drwxr-xr-x 라고 출력되었다.

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

폴더이면 d로, 파일이면 - 로 나타낸다.

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

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

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

코드스테이츠 학습자료

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 를 이용해 폴더나 파일의 권한을 변경할 수 있다.

 

명령어 chmod 로 권한을 변경하는 방식은 두 가지가 있다.

  • 첫 번째는 더하기(+), 빼기(-), 할당(=)과 액세서 유형을 표기해서 변경하는 Symbolic method.
  • 두 번째는 rwx를 3 bit로 해석하여, 숫자 3자리로 권한을 표기해서 변경하는 Absolute form.
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 : u, g, and o)    

symbolic method

symbolic method 사용 예시

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

helloworld.js 파일의 권한을 변경한다.

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------

Absolute form

Permission  Number
Read (r) 4
Write (w) 2
Execute (x) 1
# u=rwx (4 + 2 + 1 = 7), go=r (4 + 0 + 0 = 4)
chmod 744 helloworld.js # -rwxr--r--
반응형

'개발 > Linux' 카테고리의 다른 글

"~/.zshrc.swp" already exists!  (0) 2022.04.01
리눅스 환경변수  (0) 2021.10.05
CLI  (0) 2021.07.29
리눅스 기초 명령어  (0) 2021.07.28