Для отключения:sudo sh -c 'echo ATTRS{removable}=="1", SUBSYSTEMS=="block", NAME="" > /etc/udev/rules.d/99-block-storage.rules'
Для включения:sudo rm /etc/udev/rules.d/99-block-storage.rules
Или закоментировать содержимое этого файла.
Разумеется все от root. Перезагружаться, или что-то перезапусткать не нужно.
Выглядит наше правило:
ATTRS{removable}=="1", SUBSYSTEMS=="block", NAME=""ATTRS{removable}=="1"
Нужны только отключаемые устройства (что бы жесткий диск случайно не отключить).SUBSYSTEMS=="block"
Нас интересуют устройства хранения данных. (Я пробовал другие подсистемы и драйверы,
но в этом случае отдельные партиции все равно подключались).NAME=""
Собственно действие. Не создавать файл устройства.
URL: http://dik123.blogspot.com/2008/12/linux_13.html
Обсуждается: http://www.opennet.me/tips/info/1872.shtml
Не хватает только совета dd if=/dev/zero of=/dev/hda bs=512 count=1, чтоб точно флешки не подключались. =)
:)
Вообще панацея!только в последних ядрах все блочные устройства называются sd* а не hd* даже IDE
симлинки на hd* уже многие не делают
Как ядро соберёшь, так и поедешь. Не вижу ничего крамольного в том, что ide устройства работают через sd*, хотя по привычке собираю, чтобы работали через hda. Разницы не заметил :)
Есть такой ключик -- noauto, советую поискать
про fstab что ли? ... а 2 флешки ... а 3
а разделы на этих флешках ...
> про fstab что ли?не только, всё параметры fstab можно использовать для прописывания правил
Можно подробней?
Хочу отметить что в данном случае отключение автомантирование это как побочный эффект, главная задача вырубить устройство на корню. так что бы ни dd ни cat не могли получить к нему доступ ни на запись ни на чтение, при этом желательно не пересобирать ядро. А с формулировкой заголовков у меня видимо проблемы :-/
ну это только root (или владелец) и группа может.
а рут и обратную операцию может провести.
можно посмотреть ещё и hal. например, (из man, думать лень :-))
hal-lock --interface org.freedesktop.Hal.Device.Storage --exclusive --run /path/to/part-foo-program
+ PolicyKitа вот если сочетать все 3 механизма, то можно интересных результатов добиться.
>а вот если сочетать все 3 механизма, то можно интересных результатов добиться.Об этом я писал в оригенале в самом конце :)
http://dik123.blogspot.com/2008/12/linux_13.html
да. прочитал. (надо бы ссылки покрупнее. а то интересное пропускается :-))
последний абзац - аналогичен моему комментарию.хотелось бы продолжить тему... с самыми невероятными преподложениями и реализациями! :-)
итак? :-D
без перезагрузки правил часто не работает.
sudo udevadm control --reload-rules
>без перезагрузки правил часто не работает.
>sudo udevadm control --reload-rulesВозможно. В моих тестах все работало без перезагрузки правил. Но видимо зависит от версии udev.
>Для отключения:
>
> sudo sh -c 'echo ATTRS{removable}=="1", SUBSYSTEMS=="block", NAME="" > /etc/udev/rules.d/99-block-storage.rules'
>Как всегда линуксойды в своём репертуаре: нужно так усложнить систему, чтобы в ней мог разобраться только тот, кто её усложнял. :)
Все для Вас :)Это строка специально для тех кому не нужно или не хочется разбираться, просто скопировал в терминал и все.
Кроме людей, которым все кажется очень сложным, есть еще и те кому все просто и понятно. К кагой группе себя относить, каждый выбирает сам.
здесь то как раз и не сложно.. да и не сложно правила для udev подправить, написать.....
зато действительно гибкая система.например, можно сделать так:
вставил кто-то флэшку, а у безопастников сирена заиграла. :-D
и читает он совсем не ту флэшку..в общем много чего напридумать можно.
А как отключать автомонтирование флешки по её ID или наоборот автомонтирование только по одному ID?
>А как отключать автомонтирование флешки по её ID или наоборот автомонтирование только
>по одному ID?Здесь очень хорошо написано:
http://reactivated.net/writing_udev_rules.htmlЕсли в двух словах то добавить ATTR{параметр}==значение c нужным параметром
тогда можно блокировать по ID, производителю, размеру и т.д.Нужный ATTR узнается командой:
udevinfo -a -p $(udevinfo -q path -n /dev/устройство)>или наоборот автомонтирование только по одному ID?
поставить вместо равно (==) неравно (!=)
Какой именно параметр отвечает за ID c не скажу, надо поэксперементировать с несколькими флешками.
>Нужный ATTR узнается командой:
>udevinfo -a -p $(udevinfo -q path -n /dev/устройство)уже не везде, с к сожалению :(
В новой версии udev-130 (archlinux)
нет команды udevinfo, сейчас работает вариантudevadm info --query=all --name=/dev/XXXXX
и уже не так развернуто по количеству инфы
>>Нужный ATTR узнается командой:
>>udevinfo -a -p $(udevinfo -q path -n /dev/устройство)
>
>уже не везде, с к сожалению :(
>В новой версии udev-130 (archlinux)
>нет команды udevinfo, сейчас работает вариант
>
>udevadm info --query=all --name=/dev/XXXXX
>
>и уже не так развернуто по количеству инфыНе беда :)
udevadm info -a -p $(udevadm info --query=path --name=/dev/XXXXX)
как это всё похоже на ковыряние в реестре виндоса.
куда подевалась *nix-like простота?
АБСОЛЮТНО НЕ ПОХОЖЕ!или ы о том, то в данном вопросе знаете столько же, сколько и ковыряльщики реестра?
До этого метода я додумался после прочтения, как современный Linux работает с устройствами (обзорно) причем не конкретно с флешками, а с любыми ...Если бы я (или кто-либо другой) прочитал, как современный Windows работает с устройствами, то первым делом сразу бы полез в реестр и выставил совершенно очевидный ключик:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor
Start = 4И да я даже знал что 4 значит выключить! и все это просто прочитав документацию по работе с устройствами! (если такая документация вообще доступна простым смертным, я не имею ввиду DDK)
P.S. На сайте, на котором я взял этот ключик написано, что иногда он опять сбрасывается в 3 (что конечно же значит включить!) и флешки подключаются как ни в чем не бывало. если кому интересно:
http://www.intelliadmin.com/blog/2007/01/disable-usb-flash-d...
На мой взгляд читается как анекдот :)
>как это всё похоже на ковыряние в реестре виндоса.
>куда подевалась *nix-like простота?Хором говорим "спасибо" гопоте из freedesktop.org :[
Осталось понять ЗАЧЕМ?
В организациях, которые заботятся о сохранности информации ДСП (Для Служебного Пользования).
В организациях где заботятся, комп живёт в отдельной комнате, в шкафе, у юзеров только клава со скоростью набора 1 символ в 2 сек. и монитор на 40Hz дабы не думали долго,
а за спиной камера, пишет куда надо, на время нахождения в комнате!
По ссылке написано :)
В Fedora начиная с 8 версии запрещать и раздавать права можно через PolicyKit:
1. Запрещаем монтирование/размонтирование всем кроме рута:
В файле
/usr/share/PolicyKit/policy/hal-storage.policy
ищем секцию:
<action id="org.freedesktop.hal.storage.mount-removable">
заменяем <allow_active>yes</allow_active>
на <allow_active>no</allow_active>
Перезапуск не требуется.
Если пользователь вставляет флешку, то происходит запрос пароля рута.
2. Разрешаем (если нужно) некоторым пользователям монтирование:
/etc/PolicyKit/PolicyKit.conf
меняем:
<config version="0.1">
</config>
на:
<config version="0.1">
<match action="org.freedesktop.hal.storage.mount-removable">
<match user="user1|user2|user3">
<return result="yes"/>
</match>
</match>
</config>