개발일지/컴퓨터지식

Read, Write, Execute 권한 - linux

E-room 2022. 8. 27. 12:47
728x90
mkdir A
touch B.txt
ls -l

터미널 왼쪽 부분을 보면

A폴더는 drwxr-xr-x라고 되어있다.

B.txt 는 -rw-r--r--이라고 되어있다.

이렇게 각각 10개의 문자가 있는데 각각의 의미를 알아보자

 

drwxrwxrwx

라고 되어있다고 했을 경우 아래처럼 나누어진다

d / rwx / rwx / rwx
#    1     2     3

첫 번째 d는 directory로 폴더 여부인지를 알려준다.

-라고 되어 있을 경우 폴더가 아니라는 뜻이다.

 

rwx의 경우 해당 폴더(파일)의 권한을 나타낸다.

  • r : read permission 읽기 권한
  • w : write permission 쓰기 권한
  • x : execute permission 실행 권한

해당 부분이 -로 되어있으면 권한이 없음을 나타내고 알파벳 rwx로 나타난다면 권한이 있다는 뜻이다.

 

그리고 반복된 rwx 순서대로

  1. user(owner) : 파일의 소유자. 기본적으로 파일을 만든 사람이 소유자가 된다.
  2. group : 여러 user가 포함될 수 있음. 그룹에 속한 모든 user는 파일에 대한 동일한 group 액세스 권한을 갖는다.
    • 많은 사람이 파일에 액세스 해야 하는 프로젝트가 있다고 할 경우 각 user에게 일일이 권한을 할당하는 대신에 모든 user를 group에 추가하고, 파일에 group권한을 할당할 수 있다.
  3. other : 파일에 대한 액세스 권한이 있는 다른 user. 파일을 만들지 않은 다른 모든 user를 의미.

정리하면

    d     /  rwx /  rwx  / rwx   # r : read
directory / user / group / other # w : write
                                 # x : execute

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

chmod u+x B.txt
ls -l

B.txt의 user execute권한이 생긴 것을 볼 수 있다.

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, o)    

 

# 예시
chmod a=rw B.txt  # -rw-rw-rw-
chmod u= B.txt    # ----rw-rw-
chmod a+rx B.txt  # -r-xrwxrwx
chmod go-wx B.txt # -r-xr--r--
chmod a= B.txt    # ----------
chmod u+rwx B.txt # -rwx------

 

숫자로도 사용이 가능하다

# u=rwx(4+2+1=7), g=r(4+0+0=4), o=rx(4+0+1=5)
chmod 745 B.txt # -rwxr--r-x

r=4, w=2, x=1 이며 이 숫자들을 더하여 아래처럼 표현이 가능하다.

  Sum rwx Permission
7 4(r) + 2(w) + 1(x) rwx read, write, execute
6 4(r) + 2(w) + 0(-) rw- read, write
5 4(r) + 0(-) + 1(x) r-x read and execute
4 4(r) + 0(-) + 0(-) r— read only
3 0(-) + 2(w) + 1(x) -wx write, execute
2 0(-) + 2(w) + 0(-) -w- write only
1 0(-) + 0(-) + 1(x) —x execute only
0 0(-) + 0(-) + 0(-) —- none
728x90