LINUX.ORG.RU
ФорумAdmin

USB устройства


0

1

Добрый день. Стоит задача заблокировать все юсб устройства(флешки), кроме тех, которые разрешены (на разрешенные так же устанавливаются определенные права, с одних например только читать, с других и читать и писать ). На машинах стоит линукс минт. При попытке сделать это через fstab по аналогии http://ru.gentoo-wiki.com/wiki/Fstab#fstab не прокатывает, т.к. перечисленные уиды он монтирует куда я указываю, а не знакомы на автомате. Пробывал по аналогии http://wiki.sirmax.noname.com.ua/index.php/Udev сделать, но все ровно открываюся все флешки. При попытке как тут http://ru.gentoo-wiki.com/wiki/HOWTO_Udev_и_автомонтирование_носителей вообще все перестало открываться. Может я что-то не то пытаюсь ковырять ? Может кто сталкивался с похожей ситуацией или знает как это можно сделать?

Дык, написать правило udev - делов-то!

Eddy_Em ☆☆☆☆☆
()

А нельзя на udev каких-нить хуков скриптовых накинуть? А в скрипте уже разруливать ситуацию.

true_admin ★★★★★
()
Ответ на: комментарий от Eddy_Em

Спасибо. Но не могли бы вы подсказать как туда прикрутить проверку по UUID или по ATTRS{serial} ? Я линукс кручу всего неделю, трудновато разобраться.

tobealife
() автор топика
Ответ на: комментарий от tobealife

Просто добавить проверку нужного условия, например, так:

ACTION=="add", ENV{ID_FS_TYPE}=="vfat", ATTRS{serial}=="0123121", RUN+="/bin/sed -i '$a\/dev/%k /media/$env{ID_FS_TYPE}-%k vfat 

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Попробывал по Вашей статье и с добавленной строкой. Файл 1-usb.rules лежит в /etc/udev/rules.d/. Добавил уже ATTRS{serial}==«0123121», перед каждым раном адд. Содержит

KERNEL==«sd[a-z]», GOTO=«do-disk-rules»

KERNEL!=«sd[a-z][0-9]», GOTO=«end-of-file»

LABEL=«do-disk-rules»

ACTION==«add», ENV{ID_USB_DRIVER}=«usb-storage», GROUP=«storage»

IMPORT{program}=«/sbin/blkid -o udev -p %N»

ACTION==«remove», ENV{ID_FS_TYPE}!="", RUN+=«/bin/sed -i '/\/dev\/%k /d' /etc/fstab»

ACTION==«remove», ENV{ID_FS_TYPE}!="", RUN+=«/bin/rmdir /media/$env{ID_FS_TYPE}-%k»

ACTION==«add», ENV{ID_FS_TYPE}!="",ATTRS{serial}==«0123121», RUN+=«/bin/mkdir -p /media/$env{ID_FS_TYPE}-%k»

ACTION==«add», ENV{ID_FS_TYPE}==«vfat»,ATTRS{serial}==«0123121», RUN+=«/bin/sed -i '$a\/dev/%k /media/$env{ID_FS_TYPE}-%k vfat rw,noauto,noatime,dmask=022,user,fmask=133,iocharset=koi8-r 0 0' /etc/fstab»

ACTION==«add», ENV{ID_FS_TYPE}==«ntfs»,ATTRS{serial}==«0123121», RUN+=«/bin/sed -i '$a\/dev/%k /media/$env{ID_FS_TYPE}-%k ntfs-3g rw,noauto,dmask=000,fmask=111,user,locale=ru_RU.koi8-r,allow_other 0 0' /etc/fstab»

ACTION==«add», ENV{ID_FS_TYPE}!="", ENV{ID_FS_TYPE}!=«ntfs|vfat»,ATTRS{serial}==«0123121», RUN+=«/bin/sed -i '$a\/dev/%k /media/$env{ID_FS_TYPE}-%k $env{ID_FS_TYPE} defaults,user 0 0' /etc/fstab»

LABEL=«end-of-file»

И все ровно открывает все флешки (

tobealife
() автор топика
Ответ на: комментарий от Eddy_Em

в файле /lib/udev/rules.d/60-persistent-storage.rules есть строка

#USB devices use their own serial number KERNEL==«sd*[!0-9]|sr*», ENV{ID_SERIAL}!="?*", SUBSYSTEMS==«usb», IMPORT{program}=«usb_id --export %p»

при её удалении ничего не меняеться. в /etc/udev/rules.d/ есть 10-vboxdrv.rules Содержит

KERNEL==«vboxdrv», NAME=«vboxdrv», OWNER=«root», GROUP=«root», MODE=«0600»

SUBSYSTEM==«usb_device», ACTION==«add», RUN+=«/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers»

SUBSYSTEM==«usb», ACTION==«add», ENV{DEVTYPE}==«usb_device», RUN+=«/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers»

SUBSYSTEM==«usb_device», ACTION==«remove», RUN+=«/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor»

SUBSYSTEM==«usb», ACTION==«remove», ENV{DEVTYPE}==«usb_device», RUN+=«/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor»

При удалении их тоже ничего не изменяется(

tobealife
() автор топика
Ответ на: комментарий от tobealife

Так там же есть средства отладки и логгирования. По крайней мере я такое видел в доке что я прислал. Ты udev перезапускал после изменения правил?

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

udevtest: команда не найдена udev перезапускал после изменения /etc/init.d/udev restart и комп пробовал перезагружать.

tobealife
() автор топика

самый банальный метод убрать права доступа к каталогу /media для пользователя.
ну либо правила UDEV.

ktk ★★★★
()
Ответ на: комментарий от Eddy_Em

Вы скорее всего правы, удалил созданные правила, удалил файл из /etc/udev/rules.d, закоментил строку из /lib/udev/rules.d/60-persistent-storage.rules.

Но все ровно при вставке флешки она запускаеться, видно чтото гдето еще есть.

tobealife
() автор топика
Ответ на: комментарий от tobealife

Значит, какая-нибудь гномо-кедо-xfce-хренотень (которая в фоне висит) перехватывает события udev и монтирует. Отключается средствами DE.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от ktk

Спасибо. Так и зделал, закрыл права на доступ к медиа а в fstab указал монтирование на расшариную папку.

tobealife
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.