파일 권한 구현하기

LinuxBeginner
지금 연습하기

소개

Linux 와 같은 다중 사용자 운영 체제에서 파일 권한은 중요한 보안 기능입니다. 파일 권한은 사용자가 읽기, 쓰기 또는 실행할 수 있는 대상을 제어하여, 사용자가 승인된 데이터에만 접근할 수 있도록 보장합니다. 이러한 권한을 관리하는 방법을 이해하는 것은 모든 Linux 사용자, 개발자 또는 시스템 관리자에게 필수적인 기술입니다.

본 실습에서는 파일 권한 관리에 필수적인 명령어들을 직접 사용해 볼 것입니다. 다음 사항들을 학습하게 됩니다:

  • touch 명령어를 사용하여 새 파일 생성하기.
  • 숫자 (8 진수) 표기법을 사용하여 chmod 명령어로 파일 권한 수정하기.
  • chown 명령어를 사용하여 파일의 소유자 및 그룹 변경하기.
  • ls -l 명령어를 사용하여 변경 사항 확인하기.
  • 디렉터리에 대한 표준 권한 설정하기.

본 실습이 끝날 때쯤에는 Linux 파일 및 디렉터리 권한의 기본 원칙에 익숙해질 것입니다.

touch /tmp/testfile 명령어로 테스트 파일 생성

이 단계에서는 실습 나머지 부분에서 사용할 빈 파일을 생성하는 것으로 시작합니다. Linux 에서 빈 파일을 생성하는 표준 명령어는 touch입니다. 이 명령어는 파일이 존재하지 않으면 파일을 생성하고, 이미 존재하는 경우에는 최종 수정 타임스탬프를 업데이트합니다.

테스트 파일은 임시 파일의 표준 위치인 /tmp 디렉터리에 생성할 것입니다.

testfile이라는 파일을 생성하려면 터미널에서 다음 명령어를 실행하십시오:

touch /tmp/testfile

명령어가 성공적으로 실행되면 아무런 출력도 생성하지 않습니다. ls /tmp/testfile 명령어로 파일을 나열하여 파일이 생성되었는지 선택적으로 확인할 수 있습니다.

chmod 644 /tmp/testfile 명령어로 권한 설정

이 단계에서는 방금 생성한 파일의 권한을 변경하는 방법을 배웁니다. chmod (change mode) 명령어가 이 목적으로 사용됩니다. 권한은 기호 (symbolic) 또는 숫자 (8 진수, octal) 표기법을 사용하여 설정할 수 있습니다. 여기서는 매우 흔하게 사용되는 숫자 방식을 사용할 것입니다.

숫자 표기법에서 권한은 소유자 (owner), 그룹 (group), 그리고 **다른 사용자 (other users)**에 각각 해당하는 세 자리 숫자로 표현됩니다. 각 권한에는 다음 값이 할당됩니다:

  • 읽기 (read, r) 에 대한 값: 4
  • 쓰기 (write, w) 에 대한 값: 2
  • 실행 (execute, x) 에 대한 값: 1

파일에 매우 흔하게 사용되는 설정인 644로 권한을 설정할 것입니다. 이는 다음과 같이 해석됩니다:

  • 소유자: 6 (4+2) -> 읽기 및 쓰기 (rw-)
  • 그룹: 4 -> 읽기 전용 (r--)
  • 다른 사용자: 4 -> 읽기 전용 (r--)

이제 다음 명령어를 실행하여 이 권한을 테스트 파일에 적용하십시오:

chmod 644 /tmp/testfile

이 명령어는 아무런 출력도 생성하지 않습니다. 다음 단계에서 권한이 올바르게 적용되었는지 확인할 것입니다.

chown root:root /tmp/testfile 명령어로 소유자 변경

이 단계에서는 파일의 소유권을 변경할 것입니다. chown (change owner) 명령어는 파일의 소유 사용자 및/또는 그룹을 변경하는 데 사용됩니다. 구문은 chown 사용자:그룹 파일명입니다.

파일의 소유자를 다른 사용자 (예: root) 로 변경하는 것은 관리자 권한이 필요한 특권 작업입니다. 필요한 권한으로 chown을 실행하려면 sudo 명령어를 사용해야 합니다. 이 LabEx 환경에서는 labex 사용자가 암호 없이 sudo를 사용할 수 있습니다.

/tmp/testfile의 소유자와 그룹을 root로 변경해 보겠습니다. 다음 명령어를 실행하십시오:

sudo chown root:root /tmp/testfile

마찬가지로, 성공적인 명령어 실행 시 아무런 출력도 생성되지 않습니다. 이 조치를 통해 파일이 이제 시스템의 관리자 사용자에 의해 소유되도록 보장합니다.

ls -l /tmp/testfile 명령어로 확인

이 단계에서는 지금까지 수행한 모든 변경 사항을 확인할 것입니다. ls -l 명령어는 파일의 권한, 소유자, 그룹, 크기, 수정 날짜를 포함한 자세한 정보를 표시하는 "긴 목록 (long listing)" 형식을 제공합니다.

/tmp/testfile을 검사하기 위해 다음 명령어를 실행하십시오:

ls -l /tmp/testfile

다음과 유사한 출력을 보게 될 것입니다 (날짜와 시간은 다를 수 있습니다):

-rw-r--r-- 1 root root 0 Oct 22 15:13 /tmp/testfile

이 출력을 분석해 보겠습니다:

  • -rw-r--r--: 이것이 파일 권한입니다. 첫 번째 문자 -는 일반 파일임을 나타냅니다. rw-는 소유자 (root) 가 읽기 및 쓰기 권한을 가짐을 보여줍니다. 다음 r--는 그룹 (root) 이 읽기 전용 권한을 가짐을 보여줍니다. 마지막 r--는 다른 모든 사용자도 읽기 전용 권한을 가짐을 보여줍니다. 이는 설정한 644와 일치합니다.
  • root root: 이것은 파일 소유자와 그룹을 나타내며, 이를 root로 변경했습니다.

이제 파일을 성공적으로 생성하고, 권한을 설정했으며, 소유권을 변경했습니다.

chmod 755 /tmp/testdir 명령어로 디렉토리 보안 설정

마지막 단계에서는 디렉터리에 권한을 설정할 것입니다. 디렉터리 권한은 파일 권한과 유사하지만, 실행(execute) 비트 (x) 는 특별한 의미를 갖습니다. 즉, 디렉터리에 진입하고 그 안의 파일에 접근할 수 있는 권한을 부여합니다.

디렉터리에 대한 일반적이고 안전한 권한 설정은 755입니다. 이를 분석해 보겠습니다:

  • 소유자 (Owner): 7 (4+2+1) -> 읽기, 쓰기, 실행 (rwx). 소유자는 파일을 나열하고, 파일을 생성/삭제하며, 디렉터리에 진입할 수 있습니다.
  • 그룹 (Group): 5 (4+1) -> 읽기 및 실행 (r-x). 그룹 멤버는 파일을 나열하고 디렉터리에 진입할 수 있지만, 파일을 생성하거나 삭제할 수는 없습니다.
  • 기타 사용자 (Others): 5 (4+1) -> 읽기 및 실행 (r-x). 다른 사용자들도 파일을 나열하고 디렉터리에 진입할 수 있습니다.

이 랩 (lab) 시작 시 /tmp/testdir이라는 이름의 디렉터리가 생성되었습니다. 이제 chmod 명령어를 사용하여 여기에 755 권한을 적용하십시오.

chmod 755 /tmp/testdir

ls -ld /tmp/testdir 명령어로 변경 사항을 확인할 수 있습니다. -d 플래그는 디렉터리 내용이 아닌 디렉터리 자체의 세부 정보를 나열하는 데 중요합니다.

요약

이 랩 (lab) 을 완료하신 것을 축하드립니다! Linux 환경에서 파일 및 디렉터리 권한을 관리하는 기본 기술을 성공적으로 연습하셨습니다.

이 랩에서 다음 사항들을 배웠습니다:

  • touch를 사용하여 빈 파일을 생성하는 방법.
  • 파일에는 644, 디렉터리에는 755와 같은 숫자 (8 진수) 코드를 사용하여 chmod로 접근을 제어하는 방법.
  • sudo chown을 사용하여 파일의 소유자 및 그룹을 변경하는 방법.
  • ls -l을 사용하여 파일 권한 및 소유권을 검사하고 확인하는 방법.

이 명령어들은 파일을 보호하고 잘 구성된 시스템을 유지하는 데 필수적인 도구입니다. 이를 숙달하는 것은 Linux 능숙도를 높이는 핵심 단계입니다.