Soy's Devlog

리눅스 파일시스템과 기본명령(2) 본문

Linux

리눅스 파일시스템과 기본명령(2)

소이리 2024. 4. 22. 23:41

이전 글과 이어집니다.

https://tremexplo.tistory.com/44

 

리눅스 파일시스템과 기본명령(1)

리눅스 디렉터리를 다루는데 기본이 되는 명령어를 정리해 보았습니다.리눅스 파일시스템에 관한 내용은 리눅스의 시작과도 같아서 정확히 아는게 중요합니다!  목차1. 파일시스템 탐색    

tremexplo.tistory.com

 

 

접근 권한

리눅스에서는 권한이 없는 사용자가 다른 사용자의 파일이나 디렉터리에 접근하는 것을 막기위해 파일이나 디렉터리에 적절한 접근권한을 설정할 수 있다. 어느 정도 수준으로 접근이 가능한지도 설정이 가능한데 9개의 비트를 사용한다.

소유자(u), 그룹(g), 기타(o)의 세 부류에 대해 '읽기,쓰기,실행' 권한을 설정할 수 있다.

  • 읽기(r) : 파일의 내용을 볼 수 있다. 디렉터리와 서브디렉터리의 목록을 볼 수 있다.
  • 쓰기(w) : 파일의 내용을 수정하거나 이름을 변경하거나 삭제할 수 있다. 디렉터리와 서브디렉터리를 만들고 삭제할 수 있다.
  • 실행(x) : 파일을 실행할 수 있다. 디렉터리에서 프로그램을 실행시킬 수 있고 파일이 메타데이터(시간, 용량 등) 에 접근할 수 있다.

처음의 (-) 는 정규파일임을 의미한다. 다음 3개의 비트는 소유자가 갖는 rwx권한을 의미하고 다음의 3비트는 소유자가 속한 그룹의 구성원에게 주는 권한이며 마지막은 그 외 모두에게 주는 권한을 의미한다. 권한을 주지 않는 경우에는 - 로 표시한다.

 

접근권한 변경 : chmod

파일의 접근권한을 변경하기 위해서는 8진수를 사용한다. 읽기(r)는 4, 쓰기(w)는 2, 실행(x)은 1로 하여 지정한다.

접근권한을 변경하는 것에는 두 가지 방법이 있다.

 

1. 접근권한 전체를 한번에 변경하는 법

 

예를 들어, 755 file이라고 수행하면 7=r+w+x 이고 5=r+x 이므로 접근권한은 rwxr-xr-x가 된다.

만약 특정 디렉터리의 파일과 서브디렉터에도 똑같은 접근권한을 부여하고자 한다면 -R 옵션을 사용하면 된다. 

 

2. 9개의 비트 중 몇가지만 변경하는 법

 

'기호 모드'를 사용하면 몇가지 비트만 변경할 수 있다.

대상 연산 접근권한
u(소유자) +(추가) r(읽기)
g(그룹) -(제거) w(쓰기)
o(기타 : 소유자와 그룹을 제외한 나머지) =(지정) x(실행)
a(전체 : 지정되지 않았을 때 기본값) s(set user ID)  

 

예시)

u + x  : 소유자에게 쓰기 권한을 추가

=r  : 모든 사용자의 권한을 읽기로 설정

ug + rx  : 사용자와 그룹에게 읽기와 실행 권한 추가

 

초기 접근권한 설정 : umask

umask는 파일이나 디렉터리의 접근권한의 기본값을 정하는 명령이다. 

단순히 umask 명령을 실행하면 현재 지정되어 있는 접근권한의 기본값을 알 수 있다.

예를들어, umask를 실행한 결과가 022라면 정규 파일 생성 시 접근권한이 rw-rw-r--로 주어진다. 왜냐하면, 파일의 경우는 666에서 현재 umask값을 빼면 되고, 디렉터리는 777에서 현재 umask의 값을 빼면 된다. 666-002 = 664 이므로 rw-rw-r--가 된다.

일시적으로 umask 값을 변경하고자 한다면 umask 055 라고 입력하면 된다. 그러면 현재 umask 값은 055가 된다.

현재 umask 값을 토대로 접근권한을 기호로 확인하고자 한다면 umask -S라고 입력하면 된다.

 

파일 소유자 변경 : chown

일반 사용자는 할 수 없지만 root 사용자는 파일이나 디렉터리의 소유자를 다른 소유자로 바꿀 수 있다. 

chown loopy note.txt

위의 명령을 실행하면 root 사용자가 소유했던 note.txt가 loopy 소유로 바뀌게 된다.

chmod 와 유사하게 -R 옵션을 사용하여 디렉터리에 포함된 파일과 서브디렉터리 전체의 소유자 변경을 할 수 있다.

 

 

 

'Linux' 카테고리의 다른 글

리눅스 파일시스템과 기본명령(3)  (0) 2024.04.30
리눅스 파일시스템과 기본명령(1)  (0) 2024.04.20
Comments