Sie können versuchen, eine udev-Regel zu schreiben, um den zusätzlichen Festplatten ausreichend eindeutige Namen zu geben.
Eine andere Idee: Wann immer Sie eine Sicherheitsanforderung als "Es ist nicht wer es tut, es ist wie sie es tun" ausdrücken können, sprechen Sie von Typendurchsetzung, und in den meisten Linux-Distributionen wird TE auf MAC-Ebene durchgeführt. Der größte Teil meiner MAC-Erfahrung ist mit "SELinux"
Sie können es nicht auf DAC-Ebene sperren, da Sie sonst keine E / A auf dem Gerät ausführen könnten (nicht unbedingt ein Fehler von DAC als Sicherheitsmodell, sondern nur die aktuelle DAC-Richtlinie basiert ausschließlich auf Identität, sodass alle Programme Laufen unter einer bestimmten Identität erhalten identische Rechte, ohne dass ein zusätzlicher administrativer Ausdruck möglich ist. Das Sperren auf MAC-Ebene kann so erfolgen, dass normale Benutzerbereichskomponenten nichts mit der Blockdatei tun können, außer Ihren Root-Dienstprogrammen und bestimmten Teilen der Plattform. Auf Fedora ist dies bereits der Fall, wenn Blockgeräte mit dem SELinux-Typ von fixed_disk_device_t
und grub angezeigt werden, bootloader_exec_t
siehe folgendes Beispiel:
[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 ~]#
Während dd
hat ein reguläres bin_t Label:
[root@localhost ~]# ls -lhZ $(which dd)
-rwxr-xr-x. root root system_u:object_r:bin_t:s0 /bin/dd
bin_t
(anscheinend) kann immer noch auf blockierte Geräte schreiben, aber das Erstellen eines neuen Dateikontexttyps für fdisk
und dd
und das Schreiben einer Selinux-Regel, um den Zugriff des neuen Typs zu verbieten, fixed_disk_device_t
sollte nicht allzu schwierig sein. Sie müssten es nur so gestalten, dass normale Benutzerrollen es nicht können, aber Benutzer mit dem sysadm_t
können es. Denken Sie dann daran, nur ein zu machen, newrole -r root:sysadm_r
bevor Sie versuchen, die Festplatte neu zu partitionieren oder ein dd
Over-the-Block-Gerät zu machen (was nicht sein sollte). Es ist keine große Sache, da es nicht so ist, als würdest du den fdisk
ganzen Tag jeden Tag laufen .
Wahrscheinlich mehr Arbeit als Sie gesucht haben, aber TE ist der Mechanismus, der das allgemeine Problem löst, auf das Sie stoßen. Persönlich ist die udev
Regel wahrscheinlich, dass Sie die sicherste Wette sind. Ich erwähne das TE-Zeug nur für den Fall, dass Sie daran interessiert sind, eine größere Anzahl von Problemen zu lösen, die diesem ähnlich sind.