01.리눅스 기초 - 권한(Permission)
🌈 권한(Permission)
🔥 권한(Permission) 기본 개념
🔥 권한을 변경하는 방법(chmod)
🔥 실행(excute)의 개념과 권한 설정
🔥 디렉토리(directory)의 권한
🔥 Numerical permissions
🔥 그룹에 대한 권한(Permission)
1. 권한(Permission) 기본 개념
- File 또는 Directory에 대해 읽기, 쓰기, 실행 권한을 부여하는 것을 Permission이라 함
- "a.txt"를 생성 후, 상세 목록보기("ls -al")을 실행하면 아래와 같이 파일 및 디렉토리가 나타남
- cat을 통해 들여다보거나, nano 또는 vim으로 파일을 열람할 수 있다면 읽기(read) 권한을 가진 것임
- 또한 글을 편집할 수 있다면 파일에 대한 쓰기(write) 권한을 가진 것임
- "ls -al"을 통해 나타난 정보가 뒷 부분은 생성 시간과 파일 및 디렉토리 이름임
- 맨 앞에 "-" 표시는 파일을 뜻하고, "d"로 되어있다면 디렉토리를 의미함
- 앞에 나타난 정보는 각 각의 권한과 owner name, Goup name을 의미함
- 권한은 아래 총 3가지 종류가 있고, 이를 "access mode"라 부름
- r : read의 약자로, 읽기 권한
- w : write의 약자로, 쓰기 권한
- x : excute의 약자로, 실행 권한
2. 권한을 변경하는 방법(chmod)
- "access mode"를 변경하는 명령은 chmod로, change mode의 약자임
- Permission 대상을 지정하는 방법
- user는 u, group는 g, others는 o, user+group+others는 a를 사용
- chmod
[대상][+ or -][access mode] [파일 및 디렉토리명]
- other의 파일 읽기 권한 제거 : 🔍 chomod o-r a.txt
- other의 파일 읽기 권한 추가 : 🔍 chomod o+r a.txt
- other의 파일 쓰기 권한 추가 : 🔍 chomod o+w a.txt
- other의 파일 쓰기 권한 제거 : 🔍 chomod o-w a.txt
- 파일의 소유자도 읽기 및 쓰기 권한 제거가 가능
- user의 파일 읽기 권한 제거 : 🔍 chomod u-r a.txt
- user의 파일 읽기 권한 추가 : 🔍 chomod u+r a.txt
- user의 파일 쓰기 권한 제거 : 🔍 chomod u-w a.txt
- user의 파일 쓰기 권한 추가 : 🔍 chomod u+w a.txt
3. 실행(excute)의 개념과 권한 설정
- 실행(excute)은 해당 파일을 실행 가능하게 할지, 실행을 막아둘지 대한 "access mode"임
- 해당 파일을 실행 권한이 없는 user가 실행시키면, Permission denied가 발생
- 파일 실행의 방법 : "./파일명.확장자" ⇢ 🔍
./b.sh
- 단, "/bin/bash 파일명.확장자"를 통해서는 실행 권한이 없어도 가능
- 이처럼 "/bin/bash" 없이 바로 실행 하기 위해서는 실행 권한을 부여해야 함
- 실행 명령의 약자는 "x"임
- other의 파일 실행 권한 추가 : 🔍 chomod o+x b.sh
- other의 파일 실행 권한 제거 : 🔍 chomod o-x b.sh
- user의 파일 실행 권한 추가 : 🔍 chomod u+x b.sh
- user의 파일 실행 권한 제거 : 🔍 chomod u-x b.sh
4. 디렉토리(director)y의 권한
- 디렉토리(폴더)에 읽기(read) 권한을 부여한다는 것은 디렉토리에 내 파일의 내용을 볼 수 있는 것임
- 디렉토리(폴더)에 쓰기(read) 권한을 부여한다는 것은 디렉토리에 파일을 만들어간, 삭제, 수정, 이름 변경 등을 할 수 있는 권함임
- 디렉토리(폴더)에 실행(x) 권한을 부여한다는 것은 cd 명령을 통해 디렉토리에 들어갈 수 있느냐 없느냐하는 권한임
- 재귀적(Recursive)으로 권한 설정 : 상위 디렉토리의 권한 설정을 통해 하위 디렉토리까지 적용
- 상위 디렉토리 권한 설정에 "-R"을 붙임 : 재귀적으로 명령
- other의 폴더 일기 권한 추가 : 🔍 chomod -R o+r perm
- other의 폴더 쓰기 권한 추가 : 🔍 chomod -R o+w perm
- other의 폴더 실행 권한 제거 : 🔍 chomod -R o-x perm
- 권한의 모드의 변경은 chomod로 파일과 동일함
5. Numerical permissions
- "access mode"를 숫자로 정의하여 사용하는 방법
chmod [Numerical permissions] a.txt
의 명령으로 user, group, other의 권한을 한번에 부여할 수 있음
- 🔍
chmod 111 a.txt
모든 사용자(user, group, other) 실행(--x) 권한만 부여
- 숫자 1은 x(실행), 숫자 2는 w(쓰기), 숫자 4는 r(읽기) 더해보면 패턴이 있음
6. 그룹에 대한 권한(Permission)
- 'access mode'에 대한 권한을 줄 때, other 또는 user에게 권한을 줄 수 있는 것처럼 group을 대상으로 읽기(r), 쓰기(w), 실행(x) 권한 부여가 가능
- group을 만드는 방법 : sudo groupadd [그룹명]
- 🔍 sudo groupadd developer ⇢ developer라는 그룹을 생성
- group이 생성되었는지 확인 : 🔍 nano /etc/group 👈 group을 관리하는 파일
- 이 파일에서 모든 group에 대한 정보를 갖고있기 때문에 생성되었는지 확인할 수 있음
- 그룹에 이미 존재하는 사용자를 추가하는 방법 :
sudo usermod -a -G [그룹명] [계정명]
- 🔍 sudo usermod -a -G developer haezin 👈 haezin이란 사용자를 developer 그룹에 추가
- 그룹에 대한 변경 방법은 위에 방법과 같음(그룹은 g+r, g+w..)