파일 권한 구현하기

LinuxBeginner
지금 연습하기

소개

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

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

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

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

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 100%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

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 능숙도를 높이는 핵심 단계입니다.