udevルールを作成して、補足的なHDDに十分に一意の名前を付けてみてください。
別のアイデア:セキュリティ要件を「だれが実行しているのかではなく、どのように実行しているのか」と表現できる場合は、型強制について話していることになります。ほとんどのLinuxディストリビューションでは、TEはMACレベルで実行されます。私のMAC経験のほとんどは「SELinux」での経験です
DACレベルでロックダウンすることはできません。そうしないと、デバイスでI / Oを実行できなくなります(必ずしもセキュリティモデルとしてのDACの障害ではなく、現在のDACポリシーはIDベースのみなので、すべてのプログラムが特定のIDで実行している場合、追加の管理表現は不可能であり、同一の権利を取得します。通常のユーザー空間コンポーネントがブロックファイルを使用して何もできないが、ルートユーティリティとプラットフォームの特定の部分はできるように、MACレベルでそれをロックダウンすることができます。Fedoraでは、これはすでに一種のケースであり、SELinuxタイプのfixed_disk_device_t
grub でブロックデバイスが表示されbootloader_exec_t
ます。次の例を参照してください。
[root@localhost ~]# ls -lhZ $(which grub2-install)
-rwxr-xr-x. root root system_u:object_r:bootloader_exec_t:s0 /sbin/grub2-install
[root@localhost ~]# ls -lhZ /dev/sda
brw-rw----+ root disk system_u:object_r:fixed_disk_device_t:s0 /dev/sda
[root@localhost ~]# sesearch --allow | egrep bootloader | grep fixed
allow bootloader_t fixed_disk_device_t : lnk_file { read getattr } ;
allow bootloader_t fixed_disk_device_t : chr_file { ioctl read write getattr lock append open } ;
allow bootloader_t fixed_disk_device_t : blk_file { ioctl read write getattr lock append open } ;
[root@localhost ~]#
一方dd
、通常のbin_tラベルがあります。
[root@localhost ~]# ls -lhZ $(which dd)
-rwxr-xr-x. root root system_u:object_r:bin_t:s0 /bin/dd
bin_t
(明らかに)まだデバイスをブロックするように書くことができますが、ために新しいファイルのコンテキストタイプを作成fdisk
し、dd
そしてアクセスすることから、新しいタイプを許可しないようにSELinuxのルールを書くことfixed_disk_device_t
、あまりにも難しいことではありません。通常のユーザーの役割では実行できないようにする必要がありますが、sysadm_t
canを持つユーザーは実行できます。次にnewrole -r root:sysadm_r
、ディスクのパーティションを再作成する前に、またはdd
ブロックデバイス全体で実行する前に、それはあなたがfdisk
毎日一日中走っているようなものではないので、大したことではありません。
おそらく、あなたが探していたよりも多くの作業が必要ですが、TEは、実行中の一般的な問題を解決するメカニズムです。個人的には、udev
ルールはおそらくあなたが最も安全な賭けです。この問題と同様のより大きな問題のセットを解決することに関心がある場合にのみ、TEに関するものについて言及します。