Дерево страниц

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 19 Следующий »

Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)

Общий обзор доступных параметров идентификации

В данный обзор не включены параметры устройств, относящиеся к их подключению к ОС. Такие параметры нежелательно применять для идентификации устройств, так как они:

  • могут повторяться для разных устройств  (присвоение имени sdX);
  • могут зависеть от порядка подключения устройств (присвоение имен sdX);
  • могут изменяться при изменении аппаратной конфигурации;
  • с высокой вероятностью будут отличаться на разных доменных компьютерах, имеющих разную аппаратную конфигурацию.

При желании все параметры подключенного устройства можно получить командой:

sudo udevadm info --query=property --name=/dev/<имя_устройства>

Выполнить мониторинг событий, происходящих при операциях с устройствами, можно командой:

udevadm monitor

  1. Операции назначения мандатных атрибутов выполняются при подключении носителя:

    ACTION=="add"

    при этом операции подключения выполняются раздельно для самого носителя и для всех находящихся на этом носителе дисковых разделов.

  2. Сменные носители всегда являются блочными устройствами:

    ENV{SUBSYSTEM}=="block"
  3. Сменные носители всегда являются устройствами типа "диск" (disk) или типа "дисковый раздел" (partition):

    ENV{DEVTYPE}=="disk"
    ENV{DEVTYPE}=="partition"

    при этом правила МРД Parsec, применяемые для реализации учета съемных носителей, работают с дисковыми разделами.

  4. Атрибуты, теоретически применимые для идентификации сменных носителей:

    1. Для устройств типа "диск" (также применимы к устройствам типа "дисковый раздел", которыми наследуются от устройства "диск"):

      1. ENV{ID_VENDOR}=="SanDisk"
      2. ENV{ID_VENDOR_ID}=="0781"
      3. ENV{ID_VENDOR_ENC}=="SanDisk\\x20"
      4. ENV{ID_MODEL}=="Cruzer_Glide"
      5. ENV{ID_MODEL_ID}=="5575"
      6. ENV{ID_MODEL_ENC}=="Cruzer\\x20Glide\\x20\\x20\\x20\\x20"
      7. ENV{ID_SERIAL}=="SanDisk_Cruzer_Glide_XXXXXXXXXXXXXXXXXX-0:0"
      8. ENV{ID_SERIAL_SHORT}=="XXXXXXXXXXXXXXXXXX"
    2. Дополнительные атрибуты, применимые к устройствам типа "дисковый раздел":
      1. "ENV{ID_FS_LABEL}=="FLASH128G2"
      2. "ENV{ID_FS_LABEL_ENC}=="FLASH128G2"
      3. "ENV{ID_PART_ENTRY_NUMBER}=1"
      4. "ENV{ID_FS_TYPE}=="vfat"
      5. "ENV{ID_FS_USAGE}=="filesystem"
      6. "ENV{ID_FS_UUID}=="0047-C44D"
      7. "ENV{ID_FS_UUID_ENC}=="0047-C44D"
      8. "ENV{ID_FS_VERSION}=="FAT32" 
      9. "ENV{ID_PART_ENTRY_NUMBER}=1"

Рекомендации по выбору параметров идентификации

  1. Основным минимальным параметром идентификации съемного носителя является его серийный номер (ID_SERIAL или ID_SERIAL_SHORT);

  2. Для гарантированной уникальности идентификации носителей при использовании оборудования разных моделей и разных производителей можно использовать набор параметров "Производитель" - "Модель" - "Серийный номер" (например, ID_VENDOR, ID_MODEL, ID_SERIAL или ID_VENDOR_ID, ID_MODEL_ID, ID_SERIAL и т.д.);

  3.  С учетом того, что на одном устройстве может располагаться несколько дисковых разделов в дополнение к параметрам идентификации носителя для идентификации дисковых разделов можно использовать:

    Следует помнить, что все параметры файловой системы подделать гораздо проще, чем параметры физического носителя, поэтому предпочтительно придерживаться политики "один носитель - один дисковый раздел".
    1. Метку файловой системы (ID_FS_LABEL);
    2. Универсальный идентификатор файловой системы UUID (ID_FS_UUID);
    3. Номер раздела на носителе (ID_PART_ENTRY_NUMBER}.

Параметры дисковых разделов, описывающие файловую систему (ID_FS_TYPE и ID_FS_VERSION) могут быть использованы для создания правил монтирования с учетом кодировок (известная проблема: правило монтирования, по умолчанию заданное в файле etc/fstab.pdac для устройства /dev/sd* несовместимо с устройствами с файловой системой ext4).

Ограничение портов подключения устройств

Для программного запрета подключать учтенные устройства к незарегистрированныи портам можно использовать параметр DEVPATH в правилах вида:

ENV{DEVPATH}!="/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/*", GOTO="END"

где в качестве аргумента указывается префикс пути к подключенному устройству. Обратите внимание на последний символ - '*', обеспечивающий возможность сравнения неполных строк.

Следует помнить, что на разных машинах пути подключения могут быть разными, а при изменении аппаратной конфигурации пути подключения могут изменяться.
В самом деле даже нельзя гарантировать, что пути подключения останутся неизменными после перезагрузки, так как устройства при загрузке могут определяться в разном порядке.

Примерный шаблон правила udev

Автоматически создаваемые локальные правила Parsec находятся в каталоге /etc/udev/rules.d/.
Автоматически создаваемые доменные правила Parsec находятся в каталоге /run/udev/rules.d/.

Идентификация дискового раздела по серийному номеру устройств и UUID:

# отсекаются ненужные устройства - вероятность несовпадения серийника выше, правило сработает чаще
ENV{ID_SERIAL}!="SanDisk_Cruzer_Glide_ХХХХХХХХХХХХХ-0:0", GOTO="END"  
ENV{ID_FS_UUID}!="0047-C44D", GOTO="END"  

# отсекаются ненужные события
ACTION!="add",             GOTO="END"
ENV{SUBSYSTEM}!="block",   GOTO="END"
ENV{DEVTYPE}!="partition", GOTO="END" 

# настройка правил Parsec
OWNER="luser", GROUP="root", MODE="740", PDPL="0:0:0x0:0x0!:", AUDIT="o:0x0:0x0"
ENV{ID_FS_TYPE}=="?*", SYMLINK+="%k_$env{ID_FS_TYPE}", RUN+="/bin/ln -f /dev/%k /dev/%k_$env{ID_FS_TYPE}"

LABEL="END"

Запрет подключения USB-устройств

Автоматическое удаление устройств

Для полного запрета подключения USB-устройств создать правило udev, например, в файле /etc/udev/rules.d/99-local.rules:

ACTION!="add", GOTO="DONE"
ENV{ID_BUS}!="usb", GOTO="DONE"
RUN="/bin/sh -c 'echo 1 >/sys$devpath/remove'", RUN="/usr/bin/logger -s 'Astra mount: remove device %E{DEVNAME} %E{ID_VENDOR} %E{ID_SERIAL}'"
LABEL="DONE"

Это правило отключает все USB-устройства (диски и дисковые разделы) немедленно после их подключения.

Автоматическая деавторизация устройств

Для запрета использования USB-устройств создать правило udev, например, в файле /etc/udev/rules.d/99-local.rules:

ACTION!="add", GOTO="DONE"
ENV{ID_BUS}!="usb", GOTO="DONE"
RUN="/bin/sh -c 'echo 0 >/sys$devpath/authorized'", RUN="/usr/bin/logger -s 'Astra mount: deauth device %E{DEVNAME} %E{ID_VENDOR} %E{ID_SERIAL}'"
LABEL="DONE"

Это правило запрещает использовать все USB-устройства немедленно после их подключения.

  • Нет меток