본문 바로가기
리눅스

리눅스 파일 시스템

by 개발자K씨 2023. 12. 15.

리눅스 파일 시스템의 권한과 소유권 관리는 시스템의 보안과 직결된 중요한 부분입니다. 리눅스는 파일과 디렉토리에 대한 세분화된 권한을 제공하며, 이를 통해 사용자와 그룹별로 접근을 제어합니다. 기본적으로, 리눅스에서 파일이나 디렉토리의 권한은 세 가지 유형으로 분류됩니다: 읽기(read), 쓰기(write), 실행(execute) 권한입니다.

 

파일 시스템을 형상화한 나무

 

파일과 디렉토리의 권한

  • 읽기(Read, r): 파일의 내용을 읽을 수 있는 권한, 디렉토리에서는 해당 디렉토리의 목록을 볼 수 있는 권한입니다.
  • 쓰기(Write, w): 파일의 내용을 변경할 수 있는 권한, 디렉토리에서는 파일을 추가하거나 삭제할 수 있는 권한입니다.
  • 실행(Execute, x): 파일을 실행할 수 있는 권한, 디렉토리에서는 해당 디렉토리로 진입할 수 있는 권한입니다.

권한의 대상

  • 소유자(Owner): 파일이나 디렉토리의 소유자.
  • 그룹(Group): 파일이나 디렉토리가 속한 그룹.
  • 기타(Other): 소유자나 그룹에 속하지 않는 다른 모든 사용자.

권한과 소유권을 확인하고 변경하는 명령어

  1. ls -l: 파일과 디렉토리의 권한, 소유권, 그룹 정보를 포함하여 상세한 목록을 출력합니다.
  2. chmod: 파일이나 디렉토리의 권한을 변경합니다. 예를 들어, chmod 755 filename 명령은 소유자에게 모든 권한을, 그룹과 기타 사용자에게는 읽기와 실행 권한을 부여합니다.
  3. chown: 파일이나 디렉토리의 소유권을 변경합니다. 예를 들어, chown user1 filename 명령은 filename의 소유권을 user1 사용자에게 할당합니다.
  4. chgrp: 파일이나 디렉토리의 그룹 소유권을 변경합니다. 예를 들어, chgrp group1 filename 명령은 filename을 group1 그룹의 소유로 변경합니다.

chmod 명령어의 기본 구조

chmod 명령어의 기본 구조는 다음과 같습니다:

chmod [옵션] [권한] [파일/디렉토리]

 

  • [옵션]: 이 부분은 선택적입니다. 대표적인 옵션으로는 -R이 있으며, 이는 하위 디렉토리와 파일에 대해 재귀적으로 권한을 적용할 때 사용합니다.
  • [권한]: 이 부분에는 설정하고자 하는 권한을 지정합니다.
  • [파일/디렉토리]: 권한을 변경하고자 하는 파일이나 디렉토리를 지정합니다.

권한 설정 방법

chmod 명령어로 권한을 설정하는 방법은 크게 두 가지입니다: 기호를 사용하는 방법과 숫자를 사용하는 방법입니다.

  1. 기호를 사용하는 방법
    • u (user): 파일이나 디렉토리의 소유자
    • g (group): 파일이나 디렉토리의 그룹
    • o (others): 기타 사용자
    • a (all): 모든 사용자 (u, g, o 포함)
    • x (excute): 실행 권한
    • w (write): 쓰기 권한
    • r (read): 읽기 권한
    • +: 권한 추가
    • -: 권한 제거
    • =: 권한 설정
    예시:
    • chmod u+x filename: 소유자에게 실행 권한을 추가합니다.
    • chmod g-w filename: 파일의 그룹에서 쓰기 권한을 제거합니다.
    • chmod o=r filename: 기타 사용자에게 읽기 권한만 설정합니다.
  2. 숫자를 사용하는 방법
    • 4: 읽기 권한 (read)
    • 2: 쓰기 권한 (write)
    • 1: 실행 권한 (execute)
    • 권한은 이러한 숫자들의 합으로 표현됩니다.
    예시:
    • chmod 755 filename: 소유자에게 읽기, 쓰기, 실행 권한을 부여하고 (7 = 4+2+1), 그룹과 기타 사용자에게는 읽기와 실행 권한을 부여합니다 (5 = 4+1).
    • chmod 644 filename: 소유자에게 읽기와 쓰기 권한을, 그룹과 기타 사용자에게는 읽기 권한만 부여합니다.

실습 예제

  1. 특정 파일에 모든 권한 부여하기: chmod 777 file.txt
    • 이 명령은 file.txt 파일에 소유자, 그룹, 기타 사용자 모두에게 읽기, 쓰기, 실행 권한을 부여합니다.
  2. 디렉토리에 재귀적으로 권한 적용하기: chmod -R 755 directory/
    • directory 디렉토리와 그 안의 모든 파일 및 하위 디렉토리에 대해 소유자에게는 모든 권한을, 그룹과 기타 사용자에게는 읽기와 실행 권한을 부여합니다.

chmod 명령어를 사용할 때는 주의가 필요합니다. 잘못된 권한 설정은 시스템의 보안에 문제를 일으킬 수 있습니다. 특히, 777과 같이 너무 넓은 권한을 부여하는 것은 위험할 수 있으니, 필요한 최소한의 권한만 설정하는 것이 좋습니다.

'리눅스' 카테고리의 다른 글

리눅스(Linux)  (1) 2023.12.14