보안 및 접근 제어를 위한 마운트 옵션
이 단계에서는 파일 시스템에 액세스하는 방식을 제어하기 위해 마운트 옵션을 사용하는 방법을 배우게 됩니다. 마운트 옵션은 실행 권한을 제한하거나 파일 시스템을 읽기 전용으로 만드는 등 파일 시스템 동작에 대한 추가적인 제어를 제공합니다.
현재 파일 시스템 언마운트
새로운 마운트 옵션을 적용하기 전에 현재 파일 시스템을 언마운트해야 합니다.
sudo umount ~/project/mount_point
장치가 사용 중이라는 오류 메시지가 표시되면 현재 마운트 지점 디렉토리에 있지 않은지 확인하십시오.
cd ~/project
그런 다음 다시 언마운트를 시도하십시오.
noexec 옵션으로 마운트
noexec 마운트 옵션은 마운트된 파일 시스템에서 바이너리 실행을 방지합니다. 이는 악성 스크립트 또는 프로그램의 실행을 방지할 수 있는 보안 기능입니다.
noexec 옵션으로 파일 시스템을 마운트합니다.
sudo mount -t ext4 -o noexec storage_device.img ~/project/mount_point
-o noexec 부분은 mount 에 noexec 옵션을 사용하도록 지시합니다.
noexec 옵션 테스트
마운트된 파일 시스템에서 간단한 셸 스크립트를 생성하고 실행해 보겠습니다.
echo '#!/bin/bash' | sudo tee ~/project/mount_point/test_script.sh > /dev/null
echo 'echo "This script is running"' | sudo tee -a ~/project/mount_point/test_script.sh > /dev/null
스크립트를 실행 가능하게 만듭니다.
chmod +x ~/project/mount_point/test_script.sh
이제 스크립트를 실행해 봅니다.
~/project/mount_point/test_script.sh
다음과 같은 오류 메시지가 표시됩니다.
bash: /home/labex/project/mount_point/test_script.sh: Permission denied
이는 noexec 옵션이 스크립트 실행을 방지하고 있음을 확인합니다.
읽기 전용 옵션으로 언마운트 및 재마운트
이제 파일 시스템을 읽기 전용으로 마운트해 보겠습니다. 먼저 언마운트합니다.
sudo umount ~/project/mount_point
그런 다음 읽기 전용 옵션으로 마운트합니다.
sudo mount -t ext4 -o ro storage_device.img ~/project/mount_point
-o ro 부분은 mount 에 읽기 전용 옵션을 사용하도록 지시합니다.
읽기 전용 옵션 테스트
마운트된 파일 시스템에서 새 파일을 생성해 봅니다.
touch ~/project/mount_point/new_file.txt
다음과 같은 오류 메시지가 표시됩니다.
touch: cannot touch '/home/labex/project/mount_point/new_file.txt': Read-only file system
이는 파일 시스템이 읽기 전용으로 마운트되었음을 확인합니다.
마운트 옵션 확인
mount 명령을 사용하여 현재 마운트 옵션을 확인할 수 있습니다.
mount | grep mount_point
읽기 전용 옵션이 활성화되었음을 나타내는 ro를 포함한 출력을 볼 수 있습니다.
/home/labex/project/storage_device.img on /home/labex/project/mount_point type ext4 (ro,relatime)
마운트 옵션 결합
쉼표로 구분하여 여러 마운트 옵션을 결합할 수 있습니다. 파일 시스템을 언마운트하고 noexec 및 ro 옵션으로 다시 마운트해 보겠습니다.
sudo umount ~/project/mount_point
sudo mount -t ext4 -o ro,noexec storage_device.img ~/project/mount_point
마운트 옵션을 확인합니다.
mount | grep mount_point
출력에 두 옵션이 모두 표시됩니다.
/home/labex/project/storage_device.img on /home/labex/project/mount_point type ext4 (ro,noexec,relatime)
마운트 옵션 이해
탐색한 마운트 옵션은 보안 및 액세스 제어에 중요합니다.
noexec는 바이너리 파일 실행을 방지하여 악성 코드로부터 보호할 수 있습니다.
ro(읽기 전용) 는 파일 시스템에 대한 변경을 방지하여 데이터 무결성을 보호할 수 있습니다.
이러한 옵션은 최소 권한 원칙을 구현하기 위해 프로덕션 환경에서 일반적으로 사용되며, 시스템 및 사용자에게 필요한 액세스 권한만 부여합니다.