본문 바로가기
Category/정보처리기사

리눅스(Linux)에서 파일에 권한 부여하는 방법

by Corinee 2024. 10. 8.
728x90
반응형

리눅스에서 파일에 권한을 부여할 때, 8진수로 권한을 표현하는 방식은 읽기(read), 쓰기(write), 실행(execute) 권한을 각각 숫자로 변환한 뒤, 이 값을 8진수로 결합하여 표현하는 방법입니다. 이 방법을 이해하기 위해서는 각 권한이 가지는 값을 알아야 합니다.

권한의 종류와 값

리눅스의 파일 권한은 3가지 기본 권한으로 구성됩니다:

  • 읽기 권한 (r, read): 파일을 읽을 수 있는 권한 = 4
  • 쓰기 권한 (w, write): 파일을 수정할 수 있는 권한 = 2
  • 실행 권한 (x, execute): 파일을 실행할 수 있는 권한 = 1

이 값들은 각각 4, 2, 1로 매겨지며, 이를 조합해서 권한을 설정합니다.

권한의 대상

리눅스에서는 3가지 그룹에 대해 권한을 설정할 수 있습니다:

  1. 사용자 (user, u): 파일 소유자
  2. 그룹 (group, g): 파일 소유자가 속한 그룹
  3. 기타 (others, o): 소유자와 그룹에 속하지 않은 모든 사용자

권한을 8진수로 변환하는 방법

각 대상에 대해 읽기, 쓰기, 실행 권한을 숫자로 변환하여 3자리의 8진수로 표현합니다. 이때 각 대상에게 부여할 권한을 더해서 계산합니다.

1. 권한 조합

권한은 다음과 같이 조합됩니다:

  • 읽기 + 쓰기 + 실행 (rwx) = 4 + 2 + 1 = 7
  • 읽기 + 쓰기 (rw-) = 4 + 2 = 6
  • 읽기 + 실행 (r-x) = 4 + 1 = 5
  • 읽기만 (r--) = 4
  • 쓰기만 (-w-) = 2
  • 실행만 (--x) = 1
  • 권한 없음 (---) = 0

2. 예시로 이해하기

파일에 대해 사용자(user), 그룹(group), 기타 사용자(others)에게 부여할 권한을 8진수로 변환하는 과정을 살펴보겠습니다.

예시 1: chmod 751 file.txt

  • 사용자 (u): 읽기(4) + 쓰기(2) + 실행(1) = 7
  • 그룹 (g): 읽기(4) + 실행(1) = 5
  • 기타 사용자 (o): 실행만(1) = 1

따라서, 8진수로 751이 되며, 이는 사용자에게는 모든 권한(rwx), 그룹에게는 읽기/실행 권한(r-x), 기타 사용자에게는 실행 권한(--x)을 부여한 것입니다.

예시 2: chmod 644 file.txt

  • 사용자 (u): 읽기(4) + 쓰기(2) = 6
  • 그룹 (g): 읽기만(4) = 4
  • 기타 사용자 (o): 읽기만(4) = 4

따라서, 8진수로 644가 되며, 이는 사용자에게는 읽기/쓰기 권한(rw-), 그룹과 기타 사용자에게는 읽기 권한(r--)을 부여한 것입니다.

예시 3: chmod 755 file.txt

  • 사용자 (u): 읽기(4) + 쓰기(2) + 실행(1) = 7
  • 그룹 (g): 읽기(4) + 실행(1) = 5
  • 기타 사용자 (o): 읽기(4) + 실행(1) = 5

따라서, 8진수로 755가 되며, 이는 사용자에게는 모든 권한(rwx), 그룹과 기타 사용자에게는 읽기/실행 권한(r-x)을 부여한 것입니다.

3. 명령어로 파일 권한 설정

리눅스에서는 chmod 명령어를 사용해 파일의 권한을 설정할 수 있습니다. chmod 뒤에 권한을 8진수로 입력하고 파일 이름을 적습니다.

예시:

chmod 751 file.txt

위 명령어는 file.txt에 대해 사용자에게는 읽기/쓰기/실행 권한, 그룹에게는 읽기/실행 권한, 기타 사용자에게는 실행 권한을 부여합니다.

요약:

  1. 읽기(4), 쓰기(2), 실행(1) 권한을 더해서 각 그룹(사용자, 그룹, 기타 사용자)의 권한을 설정합니다.
  2. 각 그룹의 권한을 3자리 8진수로 변환해 chmod 명령어를 사용하여 파일 권한을 설정합니다.