Bạn có thể thử viết một quy tắc udev để cung cấp cho (các) ổ cứng bổ sung đủ tên duy nhất.
Một ý tưởng khác: Bất cứ khi nào bạn có thể diễn đạt một yêu cầu bảo mật là "Không phải ai đang thực hiện nó, thì đó là cách họ thực hiện", bạn đang nói về việc thực thi kiểu và trong hầu hết các bản phân phối Linux được thực hiện ở cấp MAC. Hầu hết trải nghiệm MAC của tôi là với "SELinux"
Bạn không thể khóa nó ở cấp độ DAC nếu không bạn sẽ không thể thực hiện I / O trên thiết bị (không nhất thiết là lỗi của DAC như một mô hình bảo mật, chính sách hiện tại của DAC chỉ là nhận dạng dựa trên tất cả các chương trình chạy theo một danh tính cụ thể có được các quyền giống hệt nhau mà không có biểu thức quản trị bổ sung nào có thể). Việc khóa nó ở cấp MAC có thể được thực hiện để các thành phần không gian người dùng thông thường không thể làm bất cứ điều gì với tệp khối nhưng các tiện ích gốc của bạn và các phần nhất định của nền tảng có thể. Trên Fedora, đây là trường hợp đã xảy ra với các thiết bị khối hiển thị với loại fixed_disk_device_t
và grub của Selinux khi bootloader_exec_t
xem ví dụ sau:
[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 ~]#
Trong khi đó dd
có nhãn bin_t thông thường:
[root@localhost ~]# ls -lhZ $(which dd)
-rwxr-xr-x. root root system_u:object_r:bin_t:s0 /bin/dd
bin_t
(rõ ràng) vẫn có thể viết thư cho các thiết bị khối nhưng việc tạo ra một loại bối cảnh tập tin mới cho fdisk
và dd
và viết một quy tắc selinux để không cho phép loại mới truy cập vào fixed_disk_device_t
không nên quá khó khăn. Bạn chỉ cần làm cho nó trở thành vai trò người dùng thông thường không thể làm điều đó nhưng người dùng có sysadm_t
thể làm điều đó, sau đó hãy nhớ làm điều newrole -r root:sysadm_r
đó trước khi bạn cố gắng phân vùng lại đĩa hoặc thực hiện dd
trên thiết bị chặn (không nên ' T là một vấn đề lớn vì nó không giống như bạn chạy fdisk
mỗi ngày suốt cả ngày).
Có thể nhiều công việc hơn bạn đang tìm kiếm, nhưng TE là cơ chế giải quyết vấn đề chung mà bạn đang gặp phải. Cá nhân, udev
quy tắc có lẽ là bạn đặt cược an toàn nhất. Tôi chỉ đề cập đến công cụ TE trong trường hợp bạn muốn giải quyết một loạt vấn đề lớn hơn tương tự như vấn đề này.