2.7.4.2 Ограничение доступа к USB-накопителям
Примеры выбора устройств по определенным свойствам
Запрет автомонтирования с параметром UDISKS_IGNORE
Создание белого списка с параметром UDISKS_IGNORE
Запрет автомонтирования с параметром authorized
Создание белого списка с параметром authorized
Окружение
- Версия ОС: 7.3
- Конфигурация ОС: Рабочая станция, Сервер графический, Сервер минимальный
- Редакция ОС: Стандартная
- Архитектура: x86_64
- Версия ПО: systemd-249.17-4
udev — система управления устройствами в пространстве пользователя, входящая в состав systemd (установлен по умолчанию). Позволяет системным администраторам динамически управлять устройствами, создавая правила для обработки событий (например, подключение или отключение USB-устройств).
Алгоритм создания белого списка USB-накопителей состоит из 2 этапов:
Вариант 1:
- Запрет монтирования всех USB-накопителей.
- Разрешение монтирования некоторых устройств.
Вариант 2:
- Разрешение монтирования некоторых устройств.
- Запрет монтирования всех иных USB-накопителей.
Вы можете подробнее ознакомиться с информацией по ограничению доступа к USB-накопителям, просмотрев наши обучающие видео:
-
на RuTube — Ограничение доступа к USB-накопителям;
-
в Яндекс.Дзен — Ограничение доступа к USB-накопителям;
-
в VK Видео — Ограничение доступа к USB-накопителям.
На наших каналах вы также сможете найти много другой полезной информации.
Примеры выбора устройств по определенным свойствам
Для создания белого списка USB-накопителей необходимо знать атрибуты накопителя.
1. Определите ваш флеш-накопитель:
ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 июн 30 12:59 /dev/sda
brw-rw---- 1 root disk 8, 1 июл 22 12:59 /dev/sda1
brw-rw---- 1 root disk 8, 2 июл 22 12:59 /dev/sda2
brw-rw---- 1 root disk 8, 3 июн 30 12:59 /dev/sda3
brw-rw---- 1 root disk 8, 16 июл 22 13:43/dev/sdb # флеш-накопитель
brw-rw---- 1 root disk 8, 17 июн 30 13:43 /dev/sdb1
2. Проверьте атрибуты (символы после sd* должны вводиться в соответствии с вашим выводом команды ls -l /dev/sd*):
sudo udevadm info -a -p /sys/block/sdb
Запрет автомонтирования с параметром UDISKS_IGNORE
Для отключения автомонтирования USB-накопителей, внешних HDD или SSD необходимо создать правило для udev.
1. Проверьте, поддерживает ли система USB 3.0:
lsusb -t | grep xhci
Если вывод не пустой, значит в системе есть поддержка USB 3.0.
2. Создайте файл /etc/udev/rules.d/99-usb.rules:
sudo nano /etc/udev/rules.d/99-usb.rules
Добавьте следующее содержимое:
ENV{ID_USB_DRIVER}=="usb-storage",ENV{UDISKS_IGNORE}="1"
Если в системе присутствует USB 3.0:
ENV{ID_USB_DRIVER}=="usb-storage",ENV{UDISKS_IGNORE}="1"
ENV{ID_USB_DRIVER}=="uas",ENV{UDISKS_IGNORE}="1"
Флаг ENV{UDISKS_IGNORE} отвечает за игнорирование устройства:
-
0— false; -
1— true.
3. Для применения нового правила перезагрузите конфигурацию udev:
sudo udevadm control --reload-rules
4. После этого рекомендуется отключить и повторно подключить USB-устройство для проверки. В результате автомонтирование устройства будет заблокировано.
Создание белого списка с параметром UDISKS_IGNORE
Выборка разрешения доступа по трем параметрам:
-
серийному номеру устройства;
-
модели;
-
максимальному потребления тока.
Для их определения выполните поочередно команды:
sudo udevadm info -a -p /sys/block/sdb | grep serial sudo udevadm info -a -p /sys/block/sdb | grep product sudo udevadm info -a -p /sys/block/sdb | grep bMaxPower
В выводе будет отображен серийный номер, модель и значение максимального потребления тока:
ATTRS{serial}=="04GS1F3LBIBDWU05"
ATTRS{model}=="Silicon-Power8G "
ATTRS{bMaxPower}=="200mA"
Запишите эти значения в файл правил в качестве разрешающих.
Конечный вариант файла /etc/udev/rules.d/99-usb.rules:
ENV{ID_USB_DRIVER}=="usb-storage",ENV{UDISKS_IGNORE}="1"
ATTRS{serial}=="04GS1F3LBIBDWU05",ENV{UDISKS_IGNORE}="0"
ATTRS{product}=="DataTraveler 3.0",ENV{UDISKS_IGNORE}="0"
ATTRS{bMaxPower}=="200mA",ENV{UDISKS_IGNORE}="0"
Здесь:
-
1— заблокировать все usb-накопители; -
0— разрешить накопитель по определенным свойствам.
Для того чтобы новое правило вступило в силу, необходимо обновить правила udev:
sudo udevadm control --reload-rules
Полный список атрибутов, по которым можно осуществить выборку, находится в выводе команды:
udevadm info -a -p /sys/block/sdb
Запрет автомонтирования с параметром authorized
Для отключения автомонтирования USB-накопителей необходимо будет создать правило для udev и исполняемый скрипт запрета монтирования USB-накопителей.
Создайте скрипт:
sudo nano /usr/bin/remove_usb.sh
#!/bin/bash var=$1 var2=$(echo $1 | sed 's/.*usb[[:digit:]]//' | sed 's/[a-z].*//'| sed 's/[0-9]-[0-9].//') echo 0 > '/sys/bus/usb/devices'$var2'authorized'
Измените права на скрипт:
sudo chmod +x /usr/bin/remove_usb.sh
Параметр authorized отвечает за монтирование USB-накопителя в момент подключения к ПК.
Создайте файл /etc/udev/rules.d/99-usb.rules:
sudo nano /etc/udev/rules.d/99-usb.rules
Добавьте следующее содержимое:
ENV{ID_USB_DRIVER}=="usb-storage",RUN+="/bin/sh -c '/usr/bin/remove_usb.sh $devpath'"
Для того чтобы новое правило вступило в силу, необходимо обновить правила udev:
sudo udevadm control --reload-rules
После этого можно проверить и подключить USB-накопитель. В результате открыть его не удастся.
Создание белого списка с параметром authorized
Выборка по серийному номеру устройства:
ATTRS{serial}=="0DM97KDQ", GOTO="dont_remove_usb"
Выборка по названию модели. Точное название смотрите в выводе команды:
udevadm info -a -p /sys/block/sdb
ATTRS{product}=="DataTraveler 3.0", GOTO="dont_remove_usb"
Для удобства, когда полный список параметров устройства известен, можно производить отбор по конкретному параметру:
udevadm info -a -p /sys/block/sdb | grep "ATTRS{serial}"
udevadm info -a -p /sys/block/sdb | grep "ATTRS{product}"
Итоговый вариант файла /etc/udev/rules.d/99-usb.rules:
ACTION!="add", GOTO="dont_remove_usb"
ENV{ID_USB_DRIVER}!="usb-storage", GOTO="dont_remove_usb"
ATTRS{product}=="DataTraveler 3.0", GOTO="dont_remove_usb"
ATTRS{serial}=="0DM97KDQ", GOTO="dont_remove_usb"
ENV{ID_USB_DRIVER}=="usb-storage", RUN+="/bin/sh -c '/usr/bin/remove_usb.sh $devpath'"
LABEL="dont_remove_usb"
Логика данного правила отлична от первого варианта. В первом варианте происходила блокировка сразу всех usb флеш-накопителей, а только потом осуществлялось добавление устройств в белый список. В данном варианте сначала происходит добавление устройств в белый список, а только потом блокирование устройств (добавление в черный список). Такое действие связано с тем, что параметр authorized появляется в момент монтирования и, если его значение установить в 0, то для дальнейшей работы он становится недоступен. Соответственно, сначала требуется проверить, входит ли флеш-накопитель в белый список, и если входит, то разрешить его монтирование.
Для того чтобы новое правило вступило в силу, необходимо обновить правила udev:
sudo udevadm control --reload-rules
Полный список атрибутов, по которым можно осуществить выборку, отображается в выводе команды:
udevadm info -a -p /sys/block/sdb
Дата последнего изменения: 21.01.2026
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.