01.리눅스 기초 - 권한(Permission)

ID짱재·2021년 3월 12일
0

Llinux

목록 보기
14/17
post-thumbnail

🌈 권한(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..)
profile
Keep Going, Keep Coding!

0개의 댓글