Pull to refresh

Comments 41

А не лучше ли будет воспользоваться ivman? Заодно решается куча всяких проблем (с правами, группами, названием томов и пр.)
udev сейчас много где есть, про ivman я не слышал. проблемы с правами и названием томов я решил. с радостью бы прочитал статью про ваш ivman ;-)
да, я на gentoo пробывал сначала — через udev, были шероховатости с картридером, применил ivman — вся встало на свои места ;)
UFO just landed and posted this here
ivman умер, родился halevt. Свято место пусто не бывает.

udev нужен для базового управления базой устройств в /dev/, и в общем случае управлением фирмварью и пр (при учете включения DevKit). А вот что с этими устройствами делать, должен решать пользователь. Информацию об этом он получает через HAL.
UFO just landed and posted this here
Конкретно вы можете делать что угодно. Хоть вообще autofs использовать (кстати неплохое решение). А расширяемо и правильно использовать вышеозначенные подсистемы.
UFO just landed and posted this here
Потому что это единственный способ, который позволяет покрыть все (по крайней мере известные мне) проблемы связанные с автомонтированием способом отличным от «через пень-колоду». :]

Один интерактивный ввод чего стоит, и права пользователя, когда оных > 1.
UFO just landed and posted this here
Ну делай конечно, но зачем же об костылях писать статью? Не дай бог люди начнут ими пользоваться :)
UFO just landed and posted this here
Это централизованный источник информации об устройствах с унифицированным интерфейсом, причем информация обновляется и актуальна.
вот только остается проблема с монтированием внешнего hdd форматированного в NTFS как бы указать чтоб при его монтировании автоматически использовался ntds-3g?
Посмотрите в Wiki Arch Linux про udev — там пример с монтированием ntfs есть.
А, я ошибся, pmount позволяет монтировать съемные устройства без sudo, но вручную.

Кстати, а бывают флэшки с ID_VENDOR="; /bin/rm -rf /;"? Как udev поведет себя в таком случае?
Только если ID_VENDOR="; cd /; /bin/rm -rf;" :)
UFO just landed and posted this here
Ну ок, а если bash -c /bin/rm -rf /* /.*
UFO just landed and posted this here
А я не смог заставить работать ivman, поэтому сделал также через udev, но только незнаю как побороть если у флэшки нету названия тома и если флэшка просто sdb,sdc.
Правила такие:
KERNEL==«sd[b-z]», DRIVER==«usb-storage», GROUP=«storage»ACTION==«add»
KERNEL==«sd[b-z][0-9]», GROUP=«storage», RUN+="/bin/mkdir -p /media/$env{ID_FS_LABEL_ENC}«ACTION==»add"
KERNEL==«sd[b-z][0-9]», PROGRAM=="/lib/udev/vol_id -t %N", RESULT==«vfat», RUN+="/bin/mount -t vfat -o rw,flush,quiet,nodev,noauto,noexec,nosuid,noatime,dmask=000,fmask=111,iocharset=utf8 /dev/%k /media/$env{ID_FS_LABEL_ENC}«ACTION==»add"
KERNEL==«sd[b-z][0-9]», PROGRAM=="/lib/udev/vol_id -t %N", RESULT==«ntfs», RUN+="/bin/mount -t ntfs-3g -o rw,flush,quiet,nodev,noauto,noexec,nosuid,noatime,dmask=000,fmask=111,iocharset=utf8 /dev/%k /media/$env{ID_FS_LABEL_ENC}«ACTION==»add"
KERNEL==«sd[b-z][0-9]», RUN+="/bin/mount -o rw,noauto,noexec,nodev,noatime,dmask=000,fmask=111 /dev/%k /media/$env{ID_FS_LABEL_ENC}"
ACTION==«remove», KERNEL==«sd[b-z][0-9]», RUN+="/bin/umount /dev/%k"
ACTION==«remove», KERNEL==«sd[b-z][0-9]», RUN+="/bin/rmdir /media/$env{ID_FS_LABEL_ENC}"
Ну создайте скрипт, который в зависимости от наличия метки тома или её отсутствие будет задавать название точки монтирования и исполняйте его.
Ах да, забыл написать. Файл лучше обозвать 10-название.rules, чтобы была очередь загрузки правил
Чего люди только не придумают, лишь бы halevt не использовать.
Разве в fstab этого сделать нельзя? Правда папка куда монтируем будет видна всегда, ну и ничего страшного.
Универсальное решение есть, и это halevt (ivman помер). Делать автомонтирование через udev — рассово неправильно.
а ведь человек прав. udev предназначен не для монтирования флешек.
Общеизвестно, что правота и правильность на хабре не являются абсолютными критериями.
У меня в конце ~/.config/awesome/rc.lua написано:
awful.spawn(«pgrep thunar || thunar --daemon»)

Это, конечно, требует, наличия thunar, зато работает правильно и надежно.
Внимание вопрос, что вы будете делать, если подключение устройства будет требовать какую то информацию, получаемую в интерактивном режиме? К примеру подключение зашифрованного носителя.
Ох! Неужели наконец-то в линуксе сделали то что у Эппла было в 84-м?

Пара вопросов:

1) Что будет если я выну флешку не размонитруя?
2) Насколько я понимаю, доступ к флешке будет только у 1 пользователя, котортого надо прописать рукми по id? (((
3) Почему тогда в ведущих дистрибутивах сделана дурацкая схема, при которой без иксов ничего не монтируется :( хотя можно было бы сделать проще, как тут написано? Или это способ имеет недостатки и баги?
В линуксе были различные способы автомонтирования достаточно давно. Это были и autofs, и supermount, и после своего появления udev, а потом uevent/hal.

1) Если вы выймете флешку не размонтированной может быть бяка (не вижу опции sync, но ее пихать и не стоит). Особенно если туда что то пишеться. В общем случае кеши на флеш сбрасываются почти сразу, так что с некоторой вероятностью будет все хорошо, но так делать, конечно же, не стоит.

2) В вышеозначенном примере так и будет. В примере как вот тут habrahabr.ru/blogs/linux/58769/#comment_1588556 доступ будет вообще у всех.

3) Этот способ очевидно имеет недостатки и баги, некоторые из которых можно видеть в вопросе 1 и 2. Можно и без иксов, необходим какой нибудь демон навроде ivman или halevt. Схема кстати не дурацкая, а достаточно симпатичная и йузабельная.
> Можно и без иксов, необходим какой нибудь демон навроде ivman или halevt. Схема кстати не дурацкая, а достаточно симпатичная и йузабельная.

Точно, про ivman забыл. А схема дурацкая, так как подвела меня аж минимум 2 раза — 1) когда сломались иксы, а правильный конфиг лежал на флешке :( 2) когда я решил попробовать какой-то легкий менеджер окон место Гнома. Так что не понимаю почему ведущие дистрибюутивы ее используют. Вообще по моему такие вещи как монтирование любых носителей, или доступ к файлам по сети должны быть всегда доступны пользователю, даже если у него сломались иксы (про mount я знаю, но руками монтировать — это страшный изврат и каменный век).
Почему же каменный век? В этом нет ничего военного, к тому же ситуацию можно описать как форс-мажорную :] И я опять же не понимаю, что такого в том же ивмане. Самый адекватный и настраиваемый способ.
В таком варианте нужно монтировать с опцией sync или ещё как-то чтобы обезопасить от ошибок при вытаскивании флешки в момент когда туда не успел скинуться весь кеш. Бывает очень часто нужно срочно вынуть флешку и бежать, а не ждать пока туда докачается куча файлов…
был ленивый такой поиск решения, которое не решатся упрекнуть в расовой неправильности. и по возможности стандартными средствами. решения пока не нашед, но решил поделиться своими находками. вдруг кто-то ткнёт ссылкой.

1. начал разбираться с «проблемой размонтирования». выяснил, что в mtab пишется именно uid, а не user.

2. добавил опцию utf8, бо не читались русские буквы.

3. курил мануалы. интересно что автор допускает автомонтирование с udev, но отправляет к HAL:
Q: Can I use udev to automount a USB device when I connect it?
A: Technically, yes, but udev is not intended for this. All major distributions
use HAL (http://freedesktop.org/wiki/Software_2fhal) for this, which also
watches devices with removable media and integrates the Desktop environment.

Alternatively, it is easy to add the following to fstab:
/dev/disk/by-label/PENDRIVE /media/PENDRIVE vfat user,noauto 0 0

This means that users can access the device with:
$mount /media/PENDRIVE
and doen't have to be root, but will get full permissions on the device.
Using the persistent disk links (label, uuid) will always catch the
same device regardless of the actual kernel name.


Может кто подскажет почему могут не работать udev rules на Ubuntu 14.04?

Для теста создал файл /etc/udev/rules.d/70-music.rules
И в нем одну строчку
ACTION=="add" RUN+="/usr/bin/notify-send title text"


Потом обновил правила, но когда втыкаю флешку ничего не происходит.

Что я делаю не так?
Sign up to leave a comment.

Articles