리눅스

리눅스 파일 시스템

개발자K씨 2023. 12. 15. 08:19

리눅스 파일 시스템의 권한과 소유권 관리는 시스템의 보안과 직결된 중요한 부분입니다. 리눅스는 파일과 디렉토리에 대한 세분화된 권한을 제공하며, 이를 통해 사용자와 그룹별로 접근을 제어합니다. 기본적으로, 리눅스에서 파일이나 디렉토리의 권한은 세 가지 유형으로 분류됩니다: 읽기(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과 같이 너무 넓은 권한을 부여하는 것은 위험할 수 있으니, 필요한 최소한의 권한만 설정하는 것이 좋습니다.