Linux/linux

linux(ubuntu) :) chmod 파일 또는 디렉토리의 사용권한

euncheol kim 2022. 5. 2. 20:39

 

 

 

goal

ls -l의 의미를 파악한다.

chmod로 파일에 적용된 사용 권한을 변경할 수 있다.

 

 

1 ] ls -l 명령을 주었을 때 출력 요소의 파악


imageimage

  • 1열의 맨 왼쪽 : directory 여부와 not directory여부
  • 1열 r,w,x의 의미
    • r : read permission
    • w : write permission
    • x : execute permission
  • 1열 맨 왼쪽을 제외한 3개의 묶음이 각각 나타내는 것 : 사용자 / 그룹 / 나머지에 대한 권한
    • 사용자 (user) : 파일의 소유자. 기본적으로 파일을 만든 사람이 소유자가 된다.
    • 그룹(group) : group는 여러 user가 포함 가능. group에 속한 user는 파일에 대한 동일한 group 액섹스 가진다. 파일을 많이 액세스해야 하는 프로젝트가 있다면 group으로 묶어주고 group권한을 주는 것이 바람직하다.
    • 나머지(other) : 파일에 대한 액세스 권한이 있는 다른 user. 즉, 파일을 만들지 않은 다른 모든 user를 의미 이는 global 권한 설정이라고 볼 수 있다.

 

 

 

2 ] chmod : 권한 변경


1. 개념


chmod 명령어로 읽기/쓰기/실행 권한을 변경할 수 있다. 변경 방법은 두 가지가 존재

  • Symbolic method :: 더하기(+), 빼기(-), 할당(=)과 액세서 유형을 표기하는 방법
  • Absolute form :: rwx를 3bit로 해석하여, 숫자 3자리로 권한을 표기해서 변경

[1] Symbilic method는 액세스 클래스, 연산자, 액세스 타입으로 구분한다.

Access class Operator AccessType
u (user) + (add access) r (read)
g (group) - (remove access) w (write)
o (other) = (set exact access) x (execute)
a (all: u, g, o)    

 

 

 

image

예시 명령 결과값
chmod g-r hello.java image
chmod u+x hello.java image
chmod go+w hello.java image
chomod a= hello.java
chmod u+rwx hello.java

 

 

 

[2] Absolute form은 숫자 7까지 나타내는 3bits의 합으로 표기한다.

Permission Number
Read (r) 4
Write (w) 2
Execute (x) 1
  • User, Group, Other을 각각의 합의 자리로 나타낸다.
    • 예로, chmod 744 hello.java
      • u = r(4) + w(2) + x(1)
      • g = r(4)
      • u = r(4)
    • 최종적으로는 User(r,w,x) / Group(r) / User(r)의 권한을 얻게된다.