OS

OS 리눅스 공부하기-2 {2023년04월27일}

늦게 시작한 개발자 2023. 4. 27. 17:08

https://inpa.tistory.com/entry/LINUX-%F0%9F%93%9A-%ED%8C%8C%EC%9D%BC-%EA%B6%8C%ED%95%9C-%EC%86%8C%EC%9C%A0%EA%B6%8C%ED%97%88%EA%B0%80%EA%B6%8C-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC#thankYou

 

🐧 리눅스 파일 & 디렉토리 권한 (소유권 / 허가권 / 특수권한)

파일 및 디렉터리 권한 리눅스는 여러사용자가 들어와 사용하는 멀티유저 시스템이다. 따라서 여러 사용자가 들어와 사용하다보면, 서버에 올려진 비밀자료 열람과 그것을 변조,수정,삭제를 할

inpa.tistory.com

 

리눅스의 퍼미션(권한)에 대해서 공부를 해보려 한다.

퍼미션을 통해 읽기, 쓰기, 실행에 대한 정보들을 파악할 수 있다.

[root@localhost app]# ls -l
total 0
drwxrwxr-x. 9 oracle dba 112 Apr 26 18:51 oracle
drwxrwx---. 4 oracle dba  78 Apr 26 22:03 oraInventory

출력문을 살펴보면 'd''rwxrwxr-x'. 9 'oracle' 'dba' '112' 'Apr 26 18:51' 'oracle'

d = 파일 타입

rwxrwxr-x = 파일 권한 = 775 

oracle = 서비스계정

dba = 그룹

112 = 파일사이즈

Apr 26 18:51 = 마지막 수정 날짜

oracle = 파일명

 

파일 타입 종류

d : 디렉터리

b : 블록 디바이스 파일(하드 드라이브나 CD-ROM 블록 단위의 데이터를 처리하는 디바이스)

c : 문자 디바이스 파일(터미널과 모뎀같이 바이트의 열로 데이터를 처리하는 디바이스)

l : 심볼릭 링크 파일

p : 명명된 파이프(Named Pipe)

s : 유닉스 도메인(Socket)

- : 일반(정규) 파일

 

퍼미션(권한)

r(4) 

ㄴ 파일 : 파일에 대한 읽기 권한. 열기, 읽기 허용

ㄴ 디렉터리 : 디렉터리 내의 파일을 나열할 수 있게 허용

w(2) 

ㄴ 파일 : 파일에 대한 쓰기 권한. 쓰기, 잘라내기 허용 (이름 변경, 파일 삭제 x, 파일 삭제 혹은 이름 변경은 디렉토리 속성에 의해 결정)

ㄴ 디렉터리 : 디렉터리 내의 파일을 생성, 삭제, 이름변경이 가능하도록 허용

x(1)

ㄴ 파일 : 파일에 대한 실행 권한. 파일이 프로그램으로 처리되고 파일이 실행되도록 허용. 스크립트 언어에서 작성된 프로그램 파일들은 읽기 기능으로 설정되어 있어야만 실행 가능함.

ㄴ 디렉터리 : 디렉터리 내에서 탐색을 위해 이동할 수 있도록 허용(디렉터리에 들어 올 수 있도록 허용)

r, w, x에 대한 권한이 없음은 문자 자리를 -로 대체 / 디렉토리는 실행권한 x를 꼭 가지고 있어야 해당 디렉터리로 이동

ex) rwxr-xr-- : 파일 소유자에게 읽기, 쓰기, 실행 / 파일소유그룹에게 읽기, 쓰기 / 소유자와 소유그룹 외에는 읽기 권한 754

 

u : 사용자 / g : 그룹 / o : 기타 / a : 전부

 

허가권 옵션

$ chmod 옵션

-R 특정 디렉터리 내의 파일과 하부 디렉터리의 모든 디렉터리와 파일에 대한 권한

-C 변경된 파일이나 디렉터리에 대한 자세한 정보를 출력

-f 대부분의 에러메시지 출력을 제한

--reference 모드 대신 파일에 지정한 모드를 사용

 

허가권 설정

$ chmod 퍼미션숫자 파일명

[root@localhost ~]# chown -R oracle:dba /app
[root@localhost ~]# chmod -R 775 /app

chmod -R 775 /app

즉, /app의 하부디렉터리에 대한 775 = rwxrwxr-x 사용자와 파일소유그룹에게 읽기 쓰기 실행 / 일반사용자에게 읽기, 실행 

 

허가권 변경

$ chmod 기호 문자 파일명

r 읽기 / w 쓰기 / x 실행 / 권한 추가 + / 권한 삭제 - / 권한 지정 = 

ex) chmod u=rw 파일명 : [파일명]에 대해 유저에게 권한 초기화 후 읽기, 쓰기 권한

chmod g+rw 파일명 : [파일명]에 대해 그룹에게 읽기, 쓰기 권한을 추가

chmod o-rw 파일명 : [파일명]에 대해 일반사용자에게 읽기, 쓰기 권을 제거

 

계정이 파일 허가권을 가지고 있지만, 디렉터리에 허가권이 없다면 사용불가

임의 파일에 실행권한 x를 부여 하였어도 실제로 실행가능한 형태가 아니라면 오류가 발생.

x 권한이 있는 파일을 실행하려면 ./ 을 앞에 붙인다.

 

사용자 및 그룹 소유권 변경

소유권 변경은 오직 root 사용자만 가능.

$ chown 옵션 사용자:그룹 파일

[root@localhost app]# mkdir ssd
[root@localhost app]# ls
oracle  oraInventory  ssd
[root@localhost app]# ls -al
total 0
drwxrwxr-x.  5 oracle dba   51 Apr 27 00:41 .
dr-xr-xr-x. 18 root   root 255 Apr 26 20:21 ..
drwxrwxr-x.  9 oracle dba  112 Apr 26 18:51 oracle
drwxrwx---.  4 oracle dba   78 Apr 26 22:03 oraInventory
drwxr-xr-x   2 root   root   6 Apr 27 00:41 ssd
[root@localhost app]# chown -R oracle:root ssd
[root@localhost app]# ls -al
total 0
drwxrwxr-x.  5 oracle dba   51 Apr 27 00:41 .
dr-xr-xr-x. 18 root   root 255 Apr 26 20:21 ..
drwxrwxr-x.  9 oracle dba  112 Apr 26 18:51 oracle
drwxrwx---.  4 oracle dba   78 Apr 26 22:03 oraInventory
drwxr-xr-x   2 oracle root   6 Apr 27 00:41 ssd
[root@localhost app]# chmod 777 ssd
[root@localhost app]# ls -al
total 0
drwxrwxr-x.  5 oracle dba   51 Apr 27 00:41 .
dr-xr-xr-x. 18 root   root 255 Apr 26 20:21 ..
drwxrwxr-x.  9 oracle dba  112 Apr 26 18:51 oracle
drwxrwx---.  4 oracle dba   78 Apr 26 22:03 oraInventory
drwxrwxrwx   2 oracle root   6 Apr 27 00:41 ssd

반복 연습으로 공부하는게 가장 좋다.