セキュリティとアクセス制御のためのマウントオプション
このステップでは、マウントオプションを使用してファイルシステムへのアクセス方法を制御する方法を学びます。マウントオプションを使用すると、実行権限を制限したり、ファイルシステムを読み取り専用にしたりするなど、ファイルシステムの動作をさらに制御できます。
現在のファイルシステムをアンマウントする
新しいマウントオプションを適用する前に、現在のファイルシステムをアンマウントする必要があります。
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' > ~/project/mount_point/test_script.sh
echo 'echo "This script is running"' >> ~/project/mount_point/test_script.sh
スクリプトを実行可能にします。
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
(読み取り専用) はファイルシステムへの変更を防止し、データの整合性を保護します。
これらのオプションは、最小限の権限の原則を実装するために、本番環境で一般的に使用されます。これにより、システムやユーザーには必要なアクセス権限のみが与えられます。