Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
Начало здесь: Часть 1: Системный диск, имена и группы. 2.1. Монтирование: как это работает. В прошлый раз я закончил на добавлении всех съёмных дисков в группу storage. А теперь о том, как я это использую. Идея проста – если пользователь имеет доступ к устройству, я сделаю так, чтобы он мог и монтировать. Если доступ только на чтение – монтируется на чтение. Не нужно никакой вторичной псевдоавторизации сеанса по родителю и страшных конфигов а-ля polkit. Всё, что нужно, уже есть – пользователь в группе, и юниксовые права для группы на устройство. Устройства, оставшиеся в группе disk – те самые, которые были опознаны и поименованы первым правилом udev, считаются системными, а потому не отображаются и не монтируются. Даже если они не прописаны в fstab (а монтируются, скажем, через autofs), они всё равно не будут засорять список, в отличии от некоторых ГУИ, привязанных к udisks/polkit, к которым в таких случаях приходится применять грязные хаки, чтобы избавиться от навязчивого отображения прямо на рабочем столе разделов винчестера, не прописанных в fstab. Все опции монтирования и прочие параметры берутся из конфига /etc/mnt.conf , который местами похож на fstab : В строке со звёздочкой* прописаны общие опции монтирования, а дальше опции для каждой ФС отдельно. Флажки U и G означают, что ФС будет монтироваться с указанием UID и GID пользователя.Параметр doscp задает DOS-кодировку для чтения для меток FAT, которые иногда бывают написаны русскими буквами. В ГУИ, привязанных к udisks, таких меток не видно. Кроме всего прочего, обнаруживается подключение флешки по USB-1. Поскольку такое подключение очень медленное, и чаще всего происходит из-за плохого контакта или неисправности, об этом выводится сообщение, и по-умолчанию такие устройства НЕ монтируются, если обратное не задано в конфиге или ключом -f Если кто помнит, Windows XP в таких случаях тоже ругалась, чем-то вроде "это устройство может работать быстрее...". Тогда я валил всё на "форточные глюки", но потом выяснил причину, проникся, и вот, реализовал эту полезную фичу :) 2.1. Монтирование: как это выглядит. Вставляю флешку, и набираю в консоли команду mnt Флешка смонтирована.Когда будет надо отмонтировать, я наберу команду umt Флешка отмонтирована.Теперь я вставлю сразу три флешки, и наберу команду mls и увижу список того, что вставлено.Я могу смонтировать всё, что есть: Могу отмонтировать и монтировать по одной больше: могу посмотреть, что смонтировано: и отмонтировать всё, что осталось:
Как видите, выглядит всё просто :) Имя для точки монтирования автоматически составляется из порядкового имени диска и метки, чтобы сразу можно было отличить флешки и по порядку подключения, и по метке. 2.3. Монтирование: как я это сделал. Команды mnt, umt и mls – это один скрипт и два симлинка на него же, всё лежит в /usr/local/bin/ Скрипт работает под пользователем. Непосредственно для операции монтирования раньше из этого скрипта вызывался pmount, но потом он перестал меня устраивать из-за излишней хардкодности и древности – он не знал некоторых новых ФС и поддерживал не все нужные мне опции.В результате я написал вместо pmount ещё один скрипт, который имеет нормальный (НЕ хардкодный) конфиг и сам перезапускается под рутом через sudo. Скрипт называется smount, и на него ссылаются ещё два симлинка: usmount и /usr/bin/umount.smount – последний нужен для отмонтирования под пользователем из сторонних программ, таких как eject, благодаря параметру uhelper=smount. Запись в /etc/sudoers : где hostname это имя хоста.Кроме группы storage, обычно присутствует ещё одно специфическое устройство, которое в неё не входит – это CD/DVD дисковод. О монтировании сидишников я расскажу в следующей части. Обновление от 11.02.2023: Обновлён скрипт smount, в него добавлена возможность указывать в конфиге "тип ФС" в формате ФС.Драйвер, например ntfs.ntfs3, это позволяет задействовать новый драйвер NTFS уровня ядра. Продолжение: Часть 3: укрощение сидишника и немного GUI. |
RAMZAY |
|
Темы:
43
Сообщения:
450
Участник с: 21 мая 2011
|
Будем реализовывать,честно говоря пока что вручную монтирую устройства что подключаю,lsusb и lsblk очень хорошие вещи,разделы на вениках монтирую через самописный банальный скрипт с mount /dev/sd** /media/name* (лень было каждый раз писать mount) Не нравится мне дефолтное монтирование в /run/media/name_of_user/name_volume (или как там). Хорошим ты делом занялся,спасибо,посмотрим что же еще можно натворить будет. |
Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
Спасибо на добром слове :) А lsblk действительно хорошая утилита, её гораздо удобнее использовать в скриптах, чем blkid и некоторые другие. Что касается разделов "на вениках", то когда я гружу левый комп со своей флешки, "системным диском" считается именно она, а собственные винчестеры этой машины успешно попадают в группу storage, и монтируются так же, как и флешки. |
farwayer |
|
Темы:
12
Сообщения:
181
Участник с: 30 апреля 2010
|
Спасибо за статью и отдельно за lsblk :) Чем-то напоминает mnttools ( https://aur.archlinux.org/packages/mnttools/ ), только добавлены настройки мотирования по типу ФС. А разве без sudo работать не будет, если пользователь состоит в группе storage? Кстати, /media больше нету. Теперь предлагают все монтировать в /mnt. |
RAMZAY |
|
Темы:
43
Сообщения:
450
Участник с: 21 мая 2011
|
NatrioЯ свой арч на флехе привязал по UUID'у в fstab'е (ИМХО единственное место где UUID полезен). Надо будет там реализовать ваш метод, ибо каждый раз ручками монтировать диски машин куда я подключаюсь уже поднадоело =) |
Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
farwayerЕсли /media/ нету, ничто не мешает его создать. А в /mnt/ у меня статические точки монтирования. А разве без sudo работать не будет, если пользователь состоит в группе storage?Не будет, разве что только FUSE и только в принадлежащий пользователю каталог. Во всех остальных случаях для монтирования нужны права рута, которые обычно получаются через бит SUID на бинарнике, а в скриптах на баше я обычно использую самоперезапуск через sudo. RAMZAYUUID полезен для автоматических установщиков, а так же тем, что сохраняется при клонировании раздела. Его минусы – лишь обратная сторона его плюсов: что удобно для роботов, неудобно для людей; а привязка к разделу не даёт простого способа отделить в udev весь диск целиком. |
Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
Продолжение: Часть 3: укрощение сидишника и немного GUI. |
antiron |
|
Темы:
32
Сообщения:
270
Участник с: 29 августа 2013
|
Natrio, огромное спасибо,очень клевая задумка,всё,теперь никаких mount,только mnt и umt))
Non progredi - est regredi
|
Natrio |
|
Темы:
48
Сообщения:
4771
Участник с: 08 января 2011
|
Решил попробовать на форточных дисках с некоторых пор интегрированный в ядро Linux драйвер ntfs3, как альтернативу юзерспейному FUSE-драйверу NTFS-3G. Ситуация, когда при монтировании требуется прямо указывать драйвер весьма необычна, так что мне пришлось впервые с 2014 года править скрипт smountДобавлять в конфиг ещё один столбец с указанием драйвера я не стал, так что теперь в первом столбце "тип ФС" теперь может быть вписан в виде ФС.Драйвер, например ntfs.ntfs3 Обновлённый скрипт и конфиг в посте вверху. |