Você pode tentar escrever uma regra do udev para dar ao (s) HDD (s) suplementar (s) nomes suficientemente únicos.
Outra ideia: sempre que você pode expressar um requisito de segurança como "Não é quem está fazendo isso, é como está fazendo isso", você está falando sobre a imposição de tipos e na maioria das distribuições Linux a TE é feita no nível MAC. A maior parte da minha experiência MAC é com o "SELinux"
Você não pode bloqueá-lo no nível do DAC; caso contrário, você não conseguirá executar E / S no dispositivo (não necessariamente uma falha do DAC como modelo de segurança; é apenas uma política DAC atual baseada unicamente em identidade assim, todos os programas executados sob uma identidade específica obtêm direitos idênticos, sem a possibilidade de expressão administrativa adicional). Bloqueá-lo no nível MAC pode ser feito para que os componentes comuns do espaço do usuário não possam fazer nada com o arquivo de bloco, mas seus utilitários de raiz e certas partes da plataforma podem. No Fedora isso já é o caso dos dispositivos de bloco que aparecem com o tipo SELinux de fixed_disk_device_t
e o grub com bootloader_exec_t
veja o seguinte exemplo:
[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 ~]#
Considerando que dd
tem um marcador bin_t regular:
[root@localhost ~]# ls -lhZ $(which dd)
-rwxr-xr-x. root root system_u:object_r:bin_t:s0 /bin/dd
bin_t
(aparentemente) ainda pode gravar em dispositivos de bloco, mas criar um novo tipo de contexto de arquivo para fdisk
e dd
e escrever uma regra de selinux para não permitir que o novo tipo acesse fixed_disk_device_t
difícil. Você só precisaria fazer com que as funções de usuário regulares não pudessem fazer isso, mas os usuários com sysadm_t
podem fazer isso, então lembre-se de apenas fazer um newrole -r root:sysadm_r
antes de tentar reparticionar o disco ou fazer um dd
sobre o dispositivo de bloco (o que não deve ser um grande problema, pois não é como você executa fdisk
todos os dias durante todo o dia).
Provavelmente mais trabalho do que você procurava, mas o TE é o mecanismo que resolve o problema geral que você está enfrentando. Pessoalmente, a regra udev
é provavelmente a sua aposta mais segura. Eu só mencionei as coisas da TE caso você esteja interessado em resolver um conjunto maior de problemas semelhantes a este.