개발 일지/Linux

[Linux] 사용 권한

미숫가루설탕많이 2022. 12. 19. 21:02

임의로 만든 파일과 폴더

 

임의로 파일과 폴더 하나를 각각 생성하고 ls -l 명령어를 입력하니 다음과 같이 출력되었다. 가장 왼쪽의 표현을 살펴보면 파일 hello.java는 -rw-r--r-- 이라고 출력되었고 폴더 linux는 drwxr-xr-x 라고 출력되었다. 여기서 처음 시작되는 d 와 - 는 각각 directory와 not directory를 나타낸다. 즉, 폴더이면 d로 시작하고 파일이면 -로 시작한다.

 

이어지는 r, w, x
  • r (read permission) : 읽기 권한
  • w (write permission) : 쓰기 권한
  • x (execute permission) : 실행 권한

 폴더 linux 좌측을 보면 drwxr-xr-x로 나타내는데 맨 앞은 폴더를 의미하는 d, 그리고 뒤에 rwxr-xr-x 이렇게 rwx가 3번에 걸쳐 나타나는데 그 이유는 사용자와 그룹, 나머지에 대한 권한을 표시하기 때문이다. 다시 폴더 linux를 해석해보면 소유자는 읽기와 쓰기, 실행이 모두 가능하고 다른 사용자 그룹은 읽기와 실행만 가능하다. 마찬가지로 파일 hello.java 좌측을 보면 -rw-r--r--로 출력되었고 앞에 -는 파일을 의미, 소유자는 읽기와 쓰기가 가능하고 다른 사용자는 읽기만 가능하다는 의미로 해석이 가능하다.

 

 

 

 

user, group, and other


 user는 파일의 소유자이다. 기본적으로 파일을 만든 사람이 소유자가 되기 때문에 user를 소유자라고 하기도 한다.

 

 group에는 여러 user가 포함될 수 있다. 그룹에 속한 모든 user는 파일에 대한 동일한 group 액세스 권한을 갖는다. 많은 사람이 파일에 액세스해야 하는 프로젝트가 있는 경우에 각 user에게 일일이 권한을 할당하는 대신에 모든 user를 group에 추가해서 파일에 group 권한을 할당할 수 있다.

 

 other은 파일에 대한 액세스 권한이 있는 다른 user이다. 파일을 만들지 않은 모든 user를 의미하며 other 권한을 설정하면 해당 권한을 global 권한 설정이라고 볼 수 있다.

 

 

 

 

chmod : 권한을 변경하는 명령어


 OS에 로그인한 사용자와 폴더나 파일의 소유자가 같을 경우에 명령어 chmod로 폴더나 파일의 권한을 변경할 수 있다. 만약 OS에 로그인한 사용자와 폴더나 파일의 소유자가 다를 경우에는 sudo 명령어를 이용해 관리자 권한을 획득하여 폴더나 파일의 권한을 변경할 수 있다.

 

명령어 chmod로 권한을 변경하는 방식은 다음과 같이 두 가지가 있다.

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

 

Symbolic method

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

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

 

 명령어 chmod 뒤에 액세스 클래스, 연산자, 액세스 타입을 순서대로 입력하여 권한을 변경한다. 액세스 클래스, 연산자, 액세스 타입을 모두 기억해야만 Symbolic method를 이용해 권한을 변경할 수 있다.

// 예시
chmod g-w filename
chmod u+x filename

 

Absolute form

 Absolute form은 숫자 7까지 나타내는 3 bits의 합으로 표기한다. 사용자, 그룹 또는 다른 사용자나 그룹마다 rwx가 나타나고 각 영역의 boolean 값으로 표기할 수 있다.

Permission Number
r (read) 4
w (write) 2
x (execute) 1

 

 예를 들어 user는 rwx를, group과 other은 r--로 권한을 변경하려면 위 표에 나와있는 숫자의 합을 user, group, other 순으로 입력하여 사용한다.

// 예시
# u=rwx (4+2+1=7), go=r(4+0+0=4)
chmod 744 hello.java # -rwxr--r--

'개발 일지 > Linux' 카테고리의 다른 글

[Linux] 환경변수(Windows)  (0) 2022.12.19
[Linux] 패키지 매니저 - apt  (0) 2022.12.19
[Linux] 관리자 권한과 경로  (0) 2022.12.19
[Linux] CLI 기본 명령어  (0) 2022.12.19
[Linux] CLI 공부의 필요성  (0) 2022.12.19