Linux_ 사용권한

limuubin·2021년 8월 23일
1
post-thumbnail

사용권한💡

사용권한과 소유자에 대한 이해와, 사용권한을 변경하는 방법에 대해 알아보자.

1. 터미널에 아래와 같이 작성하고 결과를 확인해보자.

>mkdir linux                  ->linux라는 이름의 폴더생성
>nano helloworld.js           ->helloworld라는 이름의 JavaScript 파일 생성
 console.log("Hello World!")  ->helloworld 파일의 내용

*작성 후 ctrl+x , y , Enter를 눌러 저장한다.

>ls -l                        ->현재 위치의 내용물을 출력(list)
 -rw-r--r-- 1 "username" staff 29 4 12 17:44 helloworld.js
 drwxr-xr-x 2 "usrename" staff 64 4 12 17:43 linux
 
*위와 같은 내용이 출력되는 것을 확인 할 수 있다.

2.터미널에 출력된 결과 중 가장 왼쪽의 표현에 대해 살펴보자.

파일 helloworld.js는-rw-r--r--이라고 출력되었고, 폴더 linux는 drwxr-xr-x라고 출력되었다.
이 표현의 시작인 -d는 각각 not directorydirectory를 나타낸다.
폴더이면 d로, 파일이면 -로 시작한다.
이어지는 r,w,x는 각각 read permission,write permission, execute permission으로 읽기,쓰기,실행 권한을 나타낸다.
3번에 걸쳐 나타나는 이유는 사용자,그룹,나머지 에 대한 권한을 표시하기 위함이다.

파일 helloworld.js 의 경우
사용자: r,w ➡️ 읽기,쓰기
그룹: r ➡️ 읽기
나머지: r ➡️ 읽기
와 같은 권한을 가지고 있다.

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

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

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

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

[Symbolic Method]

Symbolic method는액세스 클래스, 연산자,액세스 타입으로 구분합니다.
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)

명령어 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 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------

액세스 클래스와 연산자, 액세스 타입을 모두 기억해야만 Symbolic method를 이용해 권한을 변경할 수 있다.


[Absolute Form]
Absolute form은 숫자 7까지 나타내는 3 bits의 합으로 표기한다.
사용자, 그룹, 또는 다른 사용자나 그룹마다 rwx 가 나타나고, 각 영역의 boolean 값으로 표기할 수 있다.

PermissionNumber
Read(r)4
Write(w)2
Execute(x)1

만약, 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--

0개의 댓글