[Linux] 리눅스(CentOS7)

[Linux] 리눅스의 허가권과 소유권

ITsubin 2022. 3. 6. 23:40

이번에는 리눅스에서의 소유권과 허가권에 대해서 포스팅하겠습니다.

 

허가권(Permission) / 소유권(Ownership)

 

ll 명령어(ls l)–l)를 사용하면 아래 예시처럼 퍼미션(권한)을 확인할 수 있습니다.

[root@localhost test]# pwd
/test
[root@localhost test]# ls -l
합계 12
-rw-r--r--. 1 root root 44 220 16:19 a.txt
drwx--x--x. 2 root root 4096 220 15:38 aaa
-rw-r--r--. 1 root root 36 220 15:55 file.txt
[root@localhost test]# ll
합계 12
-rw-r--r--. 1 root root 44 220 16:19 a.txt
drwx--x--x. 2 root root 4096 220 15:38 aaa
-rw-r--r--. 1 root root 36 220 15:55 file.txt
[root@localhost test]#

 

위에서의 –rw-r--r--.가 a.txt의 퍼미션입니다.

 

-rwxrwxrwx 가 기본 형식이며 디렉터리, 심볼릭 링크 등 파일의 유형에 따라 가장 앞의 글자가 바뀝니다.

 

[-]로 시작한다면 일반 파일(ex. -rwxrwxrwx)

[d]로 시작한다면 디렉터리(ex. drwxrwxrwx)

[l]로 시작한다면 심볼릭 링크(소프트 링크) 파일(ex. lrwxrwxrwx)

[c]로 시작한다면 파일의 입/출력에 관련한 특수 파일(ex. crwxrwxrwx)

[b]로 시작한다면 블록 구조의 특수 파일(ex. brwxrwxrwx)

 

따라서 위 예시의 /test 디렉터리 안에는 일반 파일 두 개와 디렉터리 하나가 보이는 것을 알 수 있습니다.

 

가장 앞의 글자를 제외하고는 rwx세 번 반복하는 것을 볼 수 있습니다.

이것이 퍼미션이며, 첫 번째의 rwx소유주 권한(UID), 두 번째의 rwx그룹 권한(GID), 세 번째의 rwx기타 사용자 권한(OTHER)입니다.

 

퍼미션은 이러한 형식으로 구성됩니다.


UID GID OTHER
파일 유형(종류) 소유주 권한 그룹 권한 기타사용자
권한
-, d, l, ... rwx rwx rwx

 

rwx에서의 rread , 읽기 권한을 나타내며,

rwx에서의 wwrite , 쓰기 권한,

rwx에서의 xexcute , 실행 권한을 나타냅니다.

 

또한, rwx8진수로 표현하여 숫자로도 나타낼 수 있습니다.

 

 

UID GID OTHER
소유주 권한 그룹 권한 기타 사용자
권한
rwx rwx rwx
4+2+1 4+2+1 4+2+1

 

r(read)2^2 => 4,

w(write)2^1 => 2,

x(excute)2^0 => 1로 표현이 가능합니다.

 

예시로 777의 권한을 가진 디렉터리는 drwxrwxrwx이고, 615의 권한을 가진 일반 파일은 rw---xr-x입니다.

 

아래는 각 권한에 따라 가능한 명령어입니다.

r(4) : read 읽기 권한 [파일내용] : cat , vi / [디렉토리] : ls
w(2) : write 쓰기 권한 [파일내용] : vi , 리다이렉션(> , >>) / [디렉토리] : touch, mkdir, rm, cp, mv
x(1) : excute 실행 권한 [파일내용] : sh , ./스크립트 파일(실행파일 동작) / [디렉토리] : cd 디렉토리 접근권한

 

ex) file.txt 의 권한이 r-x------ test test

-> test 유저는 vi 명령어로 읽기는 되지만 수정, 저장이 안 됩니다..

 

ex) file.txt 의 권한이 -wx------ test test

-> test 유저는 file.txtvi로 읽기가 안됩니다.

 

아래는 권한에 따른 예시입니다.

d rwx r-x --x : 751 => A: UID(소유주) , B: GID(그룹) , C: OTHER 라고 가정하겠습니다.

A는 모든권한 r : ls 명령어 입력가능 / w : 파일을 복사 , 수정 , 삭제 가능 / x : 디렉토리에 접근 가능
Bls , cd 명령어 사용가능
파일 생성 , 복사 , 이동 불가

C는 디렉토리에 접근은 되지만 목록조차 보지 못함.

d r-x rw- rwx : 567 => A: UID(소유주) , B: GID(그룹) , C: OTHER

A는 읽기(ls) , 접근권한(cd)
B는 읽기 쓰기권한은 있으나 접근이 안되서 사용 불가
C는 모든권한

- --x -w- r-- : 124 => A: UID(소유주) , B: GID(그룹) , C: OTHER

A는 파일실행만 가능
B는 쓰기권한이 있지만 r(접근권한)이 없어서 사용불가
C는 다른사람은 읽기만 가능(cat 만 가능)

- -wx rw- -w- : 365 => A: UID(소유주) , B: GID(그룹) , C: OTHER

A는 실행만 가능(w가 의미가 없음)
B는 읽기와 내용 수정,삭제 모두 가능
C는 다른사람은 쓰기권한이 있지만 r(접근권한)이 없어서 사용불가