리눅스/리눅스 2급

[리눅스 2급] 파일 시스템 관련 명령어에 대해 알아보자(1)

tangent0426 2024. 9. 2. 18:21
728x90
반응형

 


저번 시간에 리눅스의 개요와 설치에 대해서 알아보았으니 이제부터 리눅스의 운영 및 관리에 대해 설명해 볼까 합니다.

리눅스의 개요와 설치에 대해서 알고 싶은신 분은 아래 링크에 들어가 주시면 감사하겠습니다.

 

 

[리눅스 2급] 리눅스(Linux)의 개요 및 역사,라이선스에 대해 알아보자

우리가 흔히 사용하는 스마트폰 클라우드 서버 등 전 세계의 80%이 리눅스를 사용하고 있습니다.또한 세계 상위의 500대 슈퍼컴퓨터를 비롯해서 5세대 이동통신, 사물인터넷, 드론 자율주행차 등

tangent0426.tistory.com

 

 

[리눅스 2급] 리눅스 설치

저번 시간에는 리눅스에 대한 개요와 역사, 라이선스에 대해 알아보았습니다. 이번에는 리눅스를 설치해 보는 시간을 갖아보도록 하겠습니다.  [리눅스 2급] 리눅스 설치저번 시간에는 리눅스

tangent0426.tistory.com

 

 

이번 시간에는 권한 및 그룹 설정에 대해서 설명해 볼까 합니다.

리눅스의 시스템의 모든 파일과 디렉터리에는 접근권한(Permission)과 소유권이(ownership)이 부여됩니다.

 

이때 위의 사진처럼 명령어 'ls-l'은 파일 속성을 나타냅니다.

아래로는 예시로 파일 속성을 나타낸 겁니다.

-rw-rw-r-- 1 root root 53 2017-09-16 18:49 TST

 

속성 값 의미
1 -rw-rw-r-- 파일 허가권
파일 유형과 파일 접근 권한 구성
2 1 물리적 파일 연결개수
3 root 파일 소유자명
4 root 파일 소유 그룹명
5 53 파일 크기(바이트 단위)
6 2017-09-16 파일이 마지막으로 변경된 시간
7 TST 파일명


이러한 속성 필드 중 첫 번째 필드는 파일이나 디렉터리의 허가권, 세 번째와 네 번째 필드는 파일이나 디렉터리의 소유권(ownership)을 나타냅니다.

 

소유권과 관련 명령어

소유권은 임의의 파일 또는 디렉터리에 대해 사용자와 그룹들의 소유권한을 나타내는 것입니다.

그룹은 사용자들의 시스템 운영 특성에 따라 묶어 놓은 것으로, 같은 그룹에 속한 사용자들은 파일 또는 디렉터리에 대해 동일한 소유권과 작업 권한을 갖습니다.

-rw-rw-r-- 1 root1 root2 53 2017-09-16 18:49 TST

 

위 그림에서 파일 TST에 대한 소유권은 사용자 root1과 그룹 root2에게 있습니다.

 

명령어 chown

명령어 Chown는 파일과 디렉터리의 사용자 소유권과 그룹 소유권을 변경합니다.

#chown -R root Youngjin
옵션 설명
-R 허위 디렉터리를 포함하여 디렉터리 내부의 모든 파일의 소유권 변경

 

명령어 chgrp

명령어 change group을 줄인 명령어로 파일이나 디렉터리의 그룹 소유권을 변경합니다.

명령어 chown은 소유자와 소유그룹을 모두 변경할 수 있지만 chgrp는 그룹 소유권만을 변경할 수 있습니다.

옵션 설명
-R 허위 디렉터리를 포함하여 디렉터리 내부의 모든 파일의 소유권 변경

 

허가권(permission)과 관련 명령어

명령어 'ls-l'으로 파일 유행과 허가권을 알 수 있습니다.

-rw-rw-r-- ㅣ youngjin youngjin 53 2017-09-16 18:49 TST

 

파일 허가권의 첫 번째 자리는 파일 유형을 기호로 정의합니다.

파일은 일반 파일, 디렉터리 파일, 특수 파일로 나누어집니다.

명령어 ls-l/dev를 실행하면 파일 유형이 'b'나'c' 파일들을 확인할 수 있습니다.

기호 설명
-R 허위 디렉터리를 포함하여 디렉터리 내부의 모든 파일의 소유권 변경
특수 파일 b 블록 단위로 읽고 쓰는 블록 장치 특수 파일
블록 장치 하드디스크, 플로피디스크, CD/DVD 등의 저장 장치
c 문자 단위로 읽고 쓰는 문자 장치 특수 파일
문자 장치로는 마우스,키보드, 프린터 입출력 장치
l 기호적 링크로 바로가기 아이콘 역활 수행
연결되어 있는 파일과 실제 파일은 다른 곳에 존재
p 파이프
s 소캣

파일 허가권의 두 번째 자리에서 열 번째 자리는 파일 접근 권한을 정의합니다.

리눅스는 사용자별로 파일 권한을 부여합니다.

파일 사용자는 파일 소유자(owner), 그룹 소속자(group), 그리고 기타 사용자(other 또는 public)로 구분됩니다.

파일 권한은 읽기, 쓰기, 실행이 있습니다.

사용자별 권한은 기호 모드 또는 8진수 숫자 모드로 표시됩니다.

  사용자 권한 그룹 권한 기타 사용자 권한
기호 모드 r w x r w x r w x
8진수 숫자 모드 4 2 1 4 2 1 4 2 1

TST.txt의 기호권한 rw--rw-r--는 숫자 권한으로 644입니다. 즉 파일 소유자와 그룹 사용자들은 TST.txt 파일에 대해 읽고 쓰기가 가능하면 실행 권한은 없습니다. 그 외 사용자들은 파일 TST.txt에 대해 읽기 권한만을 갖습니다.

 

권한은 파일 유형에 따라 다르게 정의됩니다.

  일반 파일 디렉터리 파일 특수 파일
읽기(r) 파일 내용 읽기 디렉터리 내 파일 목록 읽기 read()로 파일 읽기
쓰기(w) 파일 수정/삭제 디렉터리 내 파일 생성/삭제 가능 write()로 파일 내용 변경
실행(x) 파일 실행 cd 명령을 이용하여 디렉터리로 이동가능 권한 의미 없음

 

명령어 chmod

파일이나 디렉터리의 접근 허가권을 변경하는 명령어입니다.

#chmod[옵션] 파일명
옵션 설명
-R 허위 디렉터리를 포함하여 디렉터리 내부의 모든 파일의 소유권 변경

 

권한 변경은 '숫자모드' 또는 '기호 모드'가 있습니다.

 

숫자별 권한은 아래 표와 같습니다.

기호 숫자(2진수) 숫자(8진수) 의미
rwx 111 7 읽기,쓰기,실행 권한을 모두 가짐
rw- 110 6 읽기와 쓰기 권한을 가짐
r-x 101 5 읽기와 실행 권한을 가짐
r-- 100 4 읽기 권한만을 가짐
-wx 011 3 쓰기와 실행 권한을 가짐
-w- 010 2 쓰기 권한만을 가짐
--x 001 1 실행 권한 가짐
--- 000 0 아무런 권한이 없음

 

기호들의 의미는 다음과 같습니다.

기호 의미 의미
사용자 u 소유자 chmod o+w 소유자에게 쓰기 권한 부여

chmod u-x 소유자 실행 권한 제거

chmod o=rx 기타사용자에게 읽기와 실행 권한 부여
g 그룹
o 기타 사용자
a 모든 사용자(u+g+o)
연산자 l 허가권 부여
- 허가권 제거
= 특정 사용자에게 허가권 지정
권한 r 읽기
w 쓰기
x 실행

 

명령어 umask

명령어 umask는 새로 생성되는 파일이나 디렉터리의 기본 허가권 값을 지정합니다.

파일의 기본 권한은 666, 디렉터리의 기본 권한은 77이다. 명령어 umask는 디폴트 권한 값을 변경한다.

umask[옵션][값]
옵션 설명
-S umask 값을 문자로 표기

 

파일이나 디렉터리 생성 시 디폴트 권한 값에서 설정한 umask 값을 뺀 값을 기본 허가권을 설정합니다.

 

특수 권한

SetUID와 SetGID

프로세스가 실행되는 동안 해당 프로세의 root권한을 임시로 가져오는 기능입니다.

프로세스가 사용자보다 높은 수준의 접근을 요구할 때 파일 접근 제한으로 인해 원활한 기능을 제공할 수 없기 때문에 이러한 문제점을 해결하기 위한 방법으로 SetUID와 SetGID를 사용합니다.

SetUID의 경우 사용자가 사용할 때만 소유자 권한으로 파일을 실행시키고, SetGID의 경우 사용자가 사용할 때만 그룹 권한으로 파일을 실행합니다.

  코드 절대값 설명
SetUID s 4000 프로세스 실행 당시 UID로 설정
SetGID s 2000 프로세스 실행 당시 GID로 설정
Sticky bit t 1000 실행 후에도 메모리를 점유하도록 설정

 

SetUID 소문자 's'와 대문자 'S' 실행 파일에 setuid를 설정하면 소문자's'가 되고 정상적으로 실행이 되지만. 실행 파일이 아닌데 setuid를 설정하면 대문자'S'가 되고 실행할 수 있습니다.

 

Sticky bit

일반적으로 공용 디렉터리를 사용할 때 sticky bit를 설정하여 사용합니다.

sticky bit가 설정되어 있는 디렉터리 안의 내용은 해당 파일의 소유자나 root 만이 변경이 가능하게 하여 공용 디렉터리라도 권한에 제약을 두어 다른 사용자들의 파일을 보호하기 위한 목적으로 만든 것입니다.

사용자 권한을 지정하기 어려운 프로그램들의 일시적으로 특정 디렉터리에 파일을 생성하고 삭제하도록 합니다.

 

특정 응용 프로그램이 다른 응용 프로그램에서 생성한 파일을 삭제하지 못하는 권한 설정을 합니다.

생성된 sticky bit 파일을 삭제 시에는 소유자(파일 생성자)와 관리자만 지울 수 있습니다. 다른 사용자는 자신의 소유가 아닌 파일을 삭제할 수 있습니다.

 

 

디스크 쿼터(Disk Quota)

파일 시스템마다 사용자나 생성할 수 있는 파일의 용량 및 개수를 제한하는 것으로 보통 블록 단위의 용량제한과 Inode의 개수를 제한합니다.

사용자나 그룹이 가질 수 있는 Inode의 수, 사용자나 그룹에게 할당된 디스크 블록 수를 제한합니다.

쿼터는 사용자별, 파일 시스템별로 동작합니다.

 

quotacheck: 파일 시스템의 디스크 사용 상태를 검색. 쿼터 설정을 확인하여 쿼터가 존재할 경우에는 생성 (aquota.user, aquota.group: 사용자, 그룹의 쿼터 관련 정보 기록)

edquota: vi 편집기를 이용하여 사용자나 그룹에 디스크 사용량 할당

setquota: 편집기나 아닌 명령행에서 바로 사용자나 그룹에 디스크 사용량 할당

quotaon/off: 쿼터 서비스를 활성화/비활성화

requota: 파일 시스템 단위로 쿼터 설정 표기 확인

 

다음 시간에는 파일 시스템의 관리에 대해서 설명해 보겠습니다.

읽어 주셔서 감사합니다.^^

반응형