dd
特定のデバイスがコマンドの出力ファイルとコマンドのターゲットになるのを防ぐ方法があるかどうか疑問に思いますfdisk
。私は現在、これら2つのタスクを使用してSDカードに書き込むブートローダ、カーネル、およびルートファイルシステムを設定しています。と混同されるかと常に/dev/sdd
心配です。キーボードの近くにいる場合は、次の形式のコマンドを使用しないようにする方法を見つけたいと思います。sdd
sdb
sda
AD
dd if=/dev/sd[a-zA-Z0-9]* of=/dev/sd[ab]
または
fdisk /dev/sd[ab]
ベストアンサー1
セカンダリHDDに十分に一意の名前を提供するために、udevルールを作成してみてください。
もう1つの考え方:セキュリティ要件は、「誰が行うのではなく、どのように行うのか」と説明できるたびにタイプの強制について話しており、ほとんどのLinuxディストリビューションではTE MACレベルで行われます。私のMAC経験のほとんどは「SELinux」で行われました。
DACレベルでロックできない、またはデバイスでI / Oを実行することはできません(セキュリティモデルとしてDACが必ずしも失敗するわけではなく、現在のDACポリシーが完全にIDベースであるため、特定のIDで実行されているすべてのプログラムは、追加の管理表現なしで同じ権限を取得することができます一般的なユーザー空間コンポーネントはブロックファイルで何もできませんが、ルートユーティリティとプラットフォームの特定の部分は実行できるようにMACレベルでロックすることができます。デバイスfixed_disk_device_t
はSELinuxタイプと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
できます。その後、newrole -r root:sysadm_r
ディスクを再分割するか、dd
ブロックデバイスで作業を実行する前に作業を実行する必要があることに注意してください。 be)毎日一日中走るわけではないので、あまり問題ではありませんfdisk
。
必要以上に多くの作業が必要な場合がありますが、TEは直面する一般的な問題を解決するためのメカニズムです。個人的には、このudev
規則はおそらく最も安全な選択です。このような多くの問題を解決することに興味がある場合にのみ、TEについて言及します。