코딩일기/자격증

[정보처리기사] 운영체제 기본 명령어(UNIX/LINUX)| chmod 명령어 | 정보처리기사 실기 기출문제

jhy_2023 2024. 10. 14. 15:40
728x90
반응형

2020년 2회 정보처리기사 실기 기출문제

문제

리눅스 또는 유닉스에서 a.txt 파일에 대해 다음 조건을 만족하는 권한을 부여하고자 한다. 다음 <조건>을 만족하는 적합한 명령어를 작성하시오.

<조건>
- 사용자에게 읽기 / 쓰기 / 실행의 세 개의 권한을 모두 부여한다.
- 그룹에게는 읽기 / 실행을 부여한다
- 그 이외 그룹 외 사용자에는 실행 권한만을 부요한다
- a.txt에 권한을 부여하는 명령어를 8진법을 사용하여 한줄 명령문으로 작성하라.

정답

chmod 751 a.txt


해설

1. 리눅스 파일 권한 개념

리눅스에서 파일과 디렉터리는 각 사용자 그룹별로 접근 권한을 설정할 수 있습니다. 이 권한은 세 그룹으로 나뉩니다:

  • 소유자 (user, u): 파일을 소유한 사용자
  • 그룹 (group, g): 파일이 속한 사용자 그룹
  • 기타 사용자 (other, o): 소유자와 그룹에 속하지 않은 나머지 사용자들

각 그룹에 대해 세 가지의 권한을 설정할 수 있습니다:

  • 읽기 (read, r): 파일 내용을 읽을 수 있는 권한
  • 쓰기 (write, w): 파일 내용을 수정할 수 있는 권한
  • 실행 (execute, x): 파일을 실행(프로그램 파일일 경우)하거나, 디렉터리일 경우 디렉터리 안으로 들어갈 수 있는 권한

리눅스 파일 권한은 이 세 그룹에 대해 각각 설정되어, 파일 또는 디렉터리에 대한 접근을 제한하거나 허용하는 역할을 합니다.


2. chmod 명령어

리눅스에서 파일이나 디렉터리의 권한을 변경할 때 사용하는 명령어가 바로 **chmod**입니다. **chmod**는 "change mode"의 약자로, 파일 또는 디렉터리의 권한을 변경하는 데 사용됩니다. chmod 명령어는 파일의 소유자(user), 그룹(group), 기타 사용자(other)의 권한을 설정하는 데 매우 중요한 역할을 합니다.

이 명령어는 두 가지 방식으로 사용할 수 있습니다:

  • 기호 방식(symbolic): 기호로 권한을 추가하거나 제거하는 방법.
  • 8진법(octal): 숫자로 권한을 지정하는 방법.

chmod 명령어의 기본 형식:

chmod [권한] [파일명 또는 디렉터리명]

 

  • 권한: 8진법 숫자 또는 기호 방식을 사용해 권한을 지정.
  • 파일명 또는 디렉터리명: 권한을 변경할 대상.

 


3. 기호 방식을 사용하는 방법

리눅스에서는 파일 권한을 기호(symbolic) 방식으로 설정할 수 있습니다. 기호 방식을 사용할 때는 다음과 같은 문법을 사용합니다:

  1. 대상: 권한을 부여할 사용자 그룹
    • u: 사용자(소유자)
    • g: 그룹
    • o: 기타 사용자
    • a: 모든 사용자 (u, g, o 모두 포함)
  2. 연산자: 권한을 부여하거나 제거하는 동작
    • +: 권한 추가
    • -: 권한 제거
    • =: 권한 덮어쓰기
  3. 권한: 설정할 권한
    • r: 읽기 (read)
    • w: 쓰기 (write)
    • x: 실행 (execute)

4. 8진법을 사용한 권한 설정

리눅스에서는 권한을 8진법으로도 설정할 수 있습니다. 이는 각각의 권한을 숫자로 표현한 것으로, 다음과 같이 계산됩니다:

세 가지 권한을 조합하여 8진수 숫자로 나타냅니다. 각 사용자 그룹에 대한 권한을 설정한 후, 이를 합산하여 8진수로 변환합니다:

  • 읽기, 쓰기, 실행(rwx): 4 + 2 + 1 = 7
  • 읽기, 실행(rx): 4 + 1 = 5
  • 실행(x): 1 = 1

따라서, 8진법을 사용한 권한 설정 명령어는 chmod 명령어에 세 자리 숫자를 사용하여 표현됩니다.

또한, 권한이 없는 경우는 0으로 표시됩니다. 예를 들어, 그룹에게는 아무 권한도 부여하지 않으려면, 그룹에 대한 숫자로 0을 사용합니다.
따라서, 8진법을 사용한 권한 설정 명령어는 chmod 명령어에 세 자리 숫자를 사용하여 표현됩니다.

예를 들어, **사용자(소유자)**에게 읽기/쓰기/실행(rwx) 권한을 부여하고, 그룹에게는 권한을 주지 않으며, 기타 사용자에게 실행(x) 권한만을 부여하려면:

chmod 701 파일명

이 명령어는 소유자에게는 읽기/쓰기/실행 권한을, 그룹에는 아무 권한도 주지 않으며, 기타 사용자에게는 실행 권한만 부여하는 설정을 의미합니다.


5. 해설

1) 8진법으로 문제 해설

문제: 사용자에게 읽기/쓰기/실행 권한, 그룹에게 읽기/실행 권한, 기타 사용자에게 실행 권한을 부여하는 명령어를 작성하시오.

해설:

  • 소유자(사용자): 읽기(r), 쓰기(w), 실행(x) → 4 + 2 + 1 = 7
  • 그룹: 읽기(r), 실행(x) → 4 + 1 = 5
  • 기타 사용자: 실행(x) → 1 = 1

따라서, 권한을 설정하는 명령어는 다음과 같습니다:

chmod 751 a.txt

[참고] 기호로 문제 해설

문제: 사용자에게 읽기/쓰기/실행 권한, 그룹에게 읽기/실행 권한, 기타 사용자에게 실행 권한을 부여하는 명령어를 기호 방식으로 작성하시오.

해설:

  • 소유자에게 읽기, 쓰기, 실행(rwx) 권한을 부여
chmod u+rwx a.txt
  • 그룹에게 읽기, 실행(rx) 권한을 부여
chmod g+rx a.txt
    • 기타 사용자에게 실행(x) 권한을 부여
chmod o+x a.txt

한 줄로 결합하여 표현하면:

chmod u=rwx,g=rx,o=x a.txt
728x90
반응형