• 리눅스 시스템의 모든 파일과 디렉터리에는 접근 권한과 소유권이 부여됨.
  • 명령어 ls -l은 파일 속성을 나타냄.
  • 파일 속성의 첫 번째 필드는 파일이나 디렉터리의 허가권, 세 번째와 네 번째 필드는 파일이나 디렉터리 소유권 나타냄.

소유권(Ownership)과 관련된 명령어

  • 소유권은 임의의 파일 또는 디렉터리에 대해 사용자와 그룹들의 소유 권한을 나타낸 것.
  • 그룹은 사용자들의 시스템 운영 특성에 따라 묶어 놓은 것으로 같은 그룹에 속한 사용자들은 동일 소유권을 가짐.

  1. chown - 파일과 디렉터리의 사용자 소유권과 그룹 소유권을 변경.
  2. chgrp - change group을 줄인 명령어로 파일이나 디렉터리의 그룹 소유권을 변경.
    옵션 -R로 하위 디렉터리를 포함하여 디렉터리 내부의 모든 파일의 그룹 소유권 변경.

허가권(Permission)과 관련된 명령어

  • 파일 허가권의 첫 번째 자리는 파일 유형을 기호로 정의.
  • 파일은 일반 파일, 디렉터리 파일, 특수 파일로 나뉨.
  • 파일 사용자는 파일 소유자(u), 그룹 소유자(g), 기타 사용자(o), 모든 사용자(a)로 구분.
  • 파일 권한은 읽기( 4), 쓰기(2), 실행(1)이 있음.

  1. chmod - 파일이나 디렉터리의 접근 허가권을 변경하는 명령어.
    옵션 -R로 하위 디렉터리에 포함되어 있는 모든 디렉터리 및 파일의 권한 변경.

  2. umask - 새로 생성되는 파일이나 디렉터리의 기본 허가권 값을 지정.
    파일의 기본 권한은 666, 디렉터리의 기본 권한은 777.
    파일이나 디렉터리 생성 시 디폴트 권한 값에서 설정한 umask 값을 뺀 값을 기본 허가권으로 설정.
    ex) umask가 0002라면 특수 권한이 부여되어 있지 않은 일반 파일의 권한은 664, 일반 디렉터리 권한은 775.

특수 권한 관련 명령어

  1. SetUID와 SetGID - 프로세스가 실행되는 동안 해당 프로세스의 root 권한을 임시로 가져오는 기능.
    SetUID의 경우 사용자가 사용할 때만 소유자 권한으로 파일을 실행시키고,
    SetGID의 경우 사용자가 사용할 때만 그룹 권한으로 파일을 실행.
  2. Stick bit - 일반적으로 공용 디렉터리를 사용할 때 stick bit를 설정하여 사용.
    stick bit가 설정되어 있는 디렉터리 안 내용은 해당 파일의 소유자나 root 권한만이 변경이 가능하게 하여,
    다른 사용자들의 파일을 보호하기 위한 목적으로 만든 것으로 일반적으로 /tmp 안에 생성됨.
  코드 절대값 설명
SetUID s 4000 프로세스 실행 당시 UID로 설정
SetGID s 2000 프로세스 실행 당시 GID로 설정
Stick bit t 1000 실행 후에도 메모리를 점유하도록 설정

디스크 쿼터(Disk Quota)

  • 파일 시스템마다 사용자나 그룹이 생성할 수 있는 파일의 용량 및 개수를 제한하는 것으로 
    보통 블록 단위의 용량 제한과 inode의 개수를 제한.
  • 그룹 단위로도 용량을 제한할 수 있으며 웹 호스팅 서비스를 하는 경우에 유용.

 

  1. quotaoff - 쿼터 서비스를 비활성화.
  2. quotacheck - 파일 시스템의 디스크 사용 상태를 검색.
    quota 기록 파일인 'quota.user, quota.group' 또는 'aquota.user, aquota.group' 파일들 최근 생태로 갱신 위해 사용.
  3. eduquota - 편집기를 이용하여 사용자나 그룹에 디스크 사용량을 할당하는 명령어.
  4. setquota - 편집기가 기반이 아닌 명령행에서 직접 사용자나 그룹에 디스크 사용량을 할당하는 명령어.

파일 시스템의 개요

  • 운영체제가 파일을 시스템의 디스크상에 구성하는 방식.
  • 컴퓨터에서 파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 또는 조직하는 체제.
  • 하드 디스크나 CD-ROM과 같은 물리적 저장소를 관리.

리눅스 파일시스템 구조

파일 시스템의 종류

리눅스 전용 디스크 기반 파일 시스템

파일 시스템 설명
ext(ext1) 리눅스 초기에 사용되던 파일 시스템이며 호환성이 없음
ext2 고용량 디스크 사용을 염두에 두고 설계된 파일 시스템
ext3 리눅스의 대표적인 저널링을 지원하도록 확장된 파일 시스템
ACL(Access Control List)을 통한 접근 제어 지원
ext4 ext2 및 ext3와 호환성이 있는 확장 버전이자 현재 대부분의 배표판이 사용하는 버전
파일에 디스크 할당 시 물리적으로 연속적인 블록을 할당
64비트 기억 공간 제한을 없앴고 16TeraByte의 파일을 지원

저널링 파일 시스템

  • 시스템의 비정상적인 종료 시 저널(로그)을 이용해 빠르면서도 안정적인 복구가 가능.
  • 운영 형태는 저널 이리는 로그에 시스템 전 상태를 저장하고 비정상 종료 시 저널 검사한 이후 저널 정보를 바탕으로
    파일 시스템에 수정 내용을 적용하는 형태.
파일 시스템 설명
JFS IBM사의 독자적인 저널링 파일 시스템
GPL로 공개하여 현재 리눅스용으로 개발
XFS 고성능 저널링 시스템으로 64비트 주소를 지원하며 확장성 있는 알고리즘 사용
파일 수에 관계없이 예상치 못한 상황으로부터 신속한 복구와 재시작 가능
높은 확장성과 처리량을 가짐
ReiserFS 독일의 한스 라이저가 개발한 파일 시스템
모든 파일 객체들을 B트리에 저장, 간결하고 색인화된 디렉터리 지원

네트워크 파일 시스템

파일 시스템 설명
SMB 윈도우 계열 OS 환경에서 사용되는 파일/프린터 공유 프로토콜
리눅스, 유닉스 OS와 윈도우 OS와의 자료 및 하드웨어 공유
CIFS SMB를 기초로 응용하여 라우터를 뛰어넘어 연결할 수 있는 프로토콜
NFS 썬마이크로시스템이 개발한 네트워크 공유 프로토콜
파일 공유 및 파일 서버로 사용되며 공유된 영역을 마운트할 때 지정
하드웨어, 운영체제 또는 네트웤크 구조가 달라도 공유 가능

파일 시스템 관련 명령어

  1. mount와 umount - 마운트는 특정 디바이스를 특정 디렉터리처럼 사용하기 위해 장치와 디렉터리 연결.
    시스템 부팅 후 수동으로 마운트 해서 사용, 사용 끝난 후 언마운트 시키기.
    파일 /etc/mtab은 현재 마운트된 블록 시스템 정보 표시.
  2. eject - 이동식 보조기억장치(DVD나 CD-ROM)와 같은 미디어를 해제하고 장치 제거하는 명령어.
  3. fdisk - 새로운 파티션의 생성, 기존 파티션의 삭제, 파티션의 타입 결정 등의 작업을 수행.
    명령어 실행을 위해서는 어떤 디스크 파티션을 나눌 것인지 알려주어야 함.
  4. mkfs - 리눅스 파일 시스템을 생성.
  5. mke2fs - ext2, ext3, ext4 타입의 리눅스 파일 시스템을 생성 및 포맷하는 명령어.
  6. fsck - 파일 시스템의 무결성을 점검하고 대화식으로 복구하는 명령어.
    디렉터리 /lost+found은 fsck에서 사용하는 디렉터리.
  7. e2fsck - ext2, ext3, ext4 타입의 리눅스 파일 시스템을 점검 및 복구하는 명령어.
  8. du - Disk Usage의 약자로 디렉터리별로 디스크 사용량을 확인.
  9. df - 시스템에 마운트된 하드 디스크의 용량을, 파티션 단위로 사용량을 확인하는 명령어.
    기본적으로 1,024Byte 블록 단위로 출력하며, 옵션을 통해 다른 단위로 출력 가능.

'DevOps&Infra > Linux' 카테고리의 다른 글

02-3 프로세스 관리  (0) 2022.09.12
02-2 셸(Shell)  (0) 2022.08.28
01-3 리눅스의 기본 명령어(3)  (0) 2022.07.30
01-3 리눅스의 기본 명령어(2)  (0) 2022.07.30
01-3 리눅스의 기본 명령어(1)  (0) 2022.07.27