리눅스에서 파일에 권한을 부여할 때, 8진수로 권한을 표현하는 방식은 읽기(read), 쓰기(write), 실행(execute) 권한을 각각 숫자로 변환한 뒤, 이 값을 8진수로 결합하여 표현하는 방법입니다. 이 방법을 이해하기 위해서는 각 권한이 가지는 값을 알아야 합니다.
권한의 종류와 값
리눅스의 파일 권한은 3가지 기본 권한으로 구성됩니다:
- 읽기 권한 (r, read): 파일을 읽을 수 있는 권한 = 4
- 쓰기 권한 (w, write): 파일을 수정할 수 있는 권한 = 2
- 실행 권한 (x, execute): 파일을 실행할 수 있는 권한 = 1
이 값들은 각각 4, 2, 1로 매겨지며, 이를 조합해서 권한을 설정합니다.
권한의 대상
리눅스에서는 3가지 그룹에 대해 권한을 설정할 수 있습니다:
- 사용자 (user, u): 파일 소유자
- 그룹 (group, g): 파일 소유자가 속한 그룹
- 기타 (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에 대해 사용자에게는 읽기/쓰기/실행 권한, 그룹에게는 읽기/실행 권한, 기타 사용자에게는 실행 권한을 부여합니다.
요약:
- 읽기(4), 쓰기(2), 실행(1) 권한을 더해서 각 그룹(사용자, 그룹, 기타 사용자)의 권한을 설정합니다.
- 각 그룹의 권한을 3자리 8진수로 변환해 chmod 명령어를 사용하여 파일 권한을 설정합니다.
'Category > 정보처리기사' 카테고리의 다른 글
| 클라우드 컴퓨팅 서비스 모델(PaaS, SaaS, IaaS)이란? (0) | 2024.10.09 |
|---|---|
| 완전수(Perfect Number)란? 6, 28, 496, 8128, ... (0) | 2024.10.08 |
| 토큰과 관련된 용어들 (1) | 2024.10.08 |
| 동적 바인딩(Dynamic Binding)이란? (0) | 2024.10.08 |
| 포인터(Pointer)란? (0) | 2024.10.08 |