Рейтинг:3

Ubuntu-MATE: сделать автомонтирование USB-накопителей доступным для каждого пользователя (правила udev?)

флаг in

Я хочу, чтобы каждый вставленный USB-носитель (ext, ntfs, FAT…) был доступен с полным доступом для чтения и записи для каждого пользователя. Желательно под мин и как группа общий.

(Ubuntu-MATE 21.04, хотя мои проблемы на самом деле восходят к Ubuntu-MATE 16.04...)

  1. Я загружаюсь на свою машину как пользователь frank. Когда я монтирую USB-накопитель (FAT), он оказывается под /СМИ/откровенный/4C8C-E4BC - Просто отлично, как и должно быть. Когда я переключаюсь на другого пользователя (оставляя первый сеанс открытым, не выходя из системы, т.е. dm-tool переключиться на пользователя lisa) Я получил

Не удалось смонтировать том объемом 16 ГБ Устройство /dev/sda1 уже смонтировано в /СМИ/Лиза/4C9C-xxxx

Пока что имеет смысл. Но не то, что я хочу.

Конечно, для отдельных дисков Я мог бы изменить место монтирования через гном-диски или вручную добавить строку в и т.д./fstab (что по сути и есть то, что гном-диски делается). Однако я не хочу делать это для каждого USB-накопителя и SD-карты, которые у меня есть...

Есть ли лучший способ для автоматического монтирования всех пользователей?

[ Я понимаю / предполагаю, что есть что-то называемый autofs обрабатывает автоматическое монтирование USB-накопителей? Но, насколько я могу судить, это не является частью моей установки Ubuntu-MATE...]

И тогда, кажется, есть «Удев-Правила», это то, что я хочу? Очевидно, это даже «неизбежная» часть Ubuntu, поскольку это часть systemd (?)? Там находятся правила на моей машине в /etc/udev/rules.d, хотя, казалось бы, довольно специфичные про храбрых, скайп и сигнал...)

Есть многообещающие вещи РЕЖИМ и ГРУППА и UDISKS_FILESYSTEM_SHARED но (при условии, что это правильный подход) я не могу собрать воедино окончательные кусочки головоломки. Это действительно должно применяться только к съемным дискам, таким как USB-накопители и карты памяти, иначе у меня будут большие проблемы ... этот источник упоминает ПОДСИСТЕМЫ=="USB", это был бы хороший фильтр, если это правда...)

Является удев рулез кстати?

Если да, может ли кто-нибудь собрать кусочки головоломки вместе? Я почти подозреваю, что все, что я ищу, это однострочный файл в /etc/udev/rules.d.


дополнение:

Не главная моя проблема, но если бы она исчезла по тем же причинам, я был бы счастлив: вставив загрузочный USB-накопитель Windows (чуть более сложный, поставляется с разделом UEFI Boot FAT и разделом Windows Install NTSF) под вторым пользователем, я мгновенно получить:

введите описание изображения здесь

(и нет, интенсивное гугление меня ни к чему не привело) … переключаюсь обратно на первого пользователя frank (флешка все еще вставлена) Меня приветствуют эти запросы авторизации:

введите описание изображения здесь


дополнение:

Не исправление, но если эти два пользователя, по сути, вы, а другой на самом деле не активен (просто отключился, а не вышел из системы), это самый быстрый способ перед беспроблемным монтированием USB:

кто -у
sudo kill <pid этого другого пользователя>
sudodus avatar
флаг jp
Я использую не MATE, а другие варианты Ubuntu.Я не знаю, как использовать udev для этой цели, но я использовал [`mount` для подобных, но более простых случаев](https://askubuntu.com/questions/11840/how-do-i-use -chmod-на-NTFS-или-FAT32-раздел/956072#956072). Итак, я играю с шеллскриптом, чем могу делать то, что вы хотите, по крайней мере, с файловыми системами Microsoft. Но 1. Требуется «sudo» или запуск от имени «root». Вы можете разрешить использование шеллскрипта или `mkdir` и `mount` без пароля через `visudo`; 2. Плохая идея вмешиваться в права доступа в файловой системе Linux, например. `ext4`.
sudodus avatar
флаг jp
Вы не должны позволять автоматическому инструменту вмешиваться в права доступа в файловой системе Linux, потому что изменения сохраняются и могут разрушить системные каталоги и конфигурации. Если вы хотите сделать файловую систему Linux доступной для всех, установите разрешения с помощью `chmod`; 3. Запуск шеллскрипта вручную должен работать, но также возможно (возможно, через `udev`) следить за подключением внешних устройств; 4. Стало проще создавать дополнительные сценарии оболочки для размонтирования и очистки точек монтирования. -- Вам интересен этот путь монтирования или вы хотите пойти путем udev?
Frank Nocke avatar
флаг in
Я не намерен вмешиваться ни в какие права пользователя, **кроме** прав тома, который нужно смонтировать, что также [ничего необычного в `/etc/fstab`](https://superuser.com/q /174776). Только для «всех USB-накопителей, которые могут быть». (если бы у `fstab` была какая-то поддержка подстановочных знаков для соответствия USB-накопителям, моя проблема была бы решена. Но это не так.) И правила Udev действительно также [имеют атрибут `MODE`](https://www .clearpathrobotics.com/assets/guides/kinetic/ros/Udev%20Rules.html)...
sudodus avatar
флаг jp
Извините, но я недостаточно хорошо знаю udev, чтобы помочь вам с этим. Но мой способ "монтирования" *может* справиться с "подстановкой подстановочных знаков". Тем не менее, вы должны как-то инициировать его, через `cron` или `udev`, или, возможно, каким-то другим способом для отслеживания событий. Хотите увидеть код скрипта?
Frank Nocke avatar
флаг in
да, конечно ... не стесняйтесь публиковать в качестве ответа (больше комфорта при написании / просмотре), в конце концов, та же цель, другой метод
Рейтинг:2
флаг jp

Следующий сценарий может быть вызван монтажник или какое-то [другое] уникальное имя. А за цикл ищет вывод лсблк с подходящими вариантами. Он обнаружит разделы на дисках, подключенных через USB, и смонтирует их (если они еще не смонтированы) в выделенных подкаталогах /mnt.

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

#!/бин/баш

если [ "$(ктоами)" != "корень" ]
тогда
 echo "запустить с помощью sudo или от имени пользователя root"
 выход
фи
for i in $(lsblk -lo name,fstype,hotplug,type|grep '1 часть$'|tr -s ' ' '|sed 's/ 1 часть$//'|grep ' ..*$'| тр ' ' '_')
делать
 printf "$i\n"
 dev=/dev/${i%_*}
 фсс=${я#*_}
# echo "$dev -- $fss"
 mkdir -p /mnt/"$i"
 если [ "$fss" == "ntfs" ] || [ "$fss" == "vfat" ] || [ "$fss" == "exfat" ]
 тогда
  mount -o rw,user,exec,umask=0000 "$dev" /mnt/"$i"
 еще
  mount -o rw, пользователь "$dev" /mnt/"$i"
 фи
сделано

Этот шеллскрипт может делать то, что вы хотите, по крайней мере, с файловыми системами Microsoft.

  • Это нужно судо или работает как корень. Вы можете разрешить использование шеллскрипта или мкдир и устанавливать без пароля через зрение.

  • Вы можете или не хотите изменять умаск чтобы "другие" не писали.

  • Плохая идея - вмешиваться в права доступа в файловой системе Linux, например. доб4. Так что в этом случае этот шеллскрипт использует разные параметры монтирования. Если вы хотите сделать файловую систему Linux доступной для всех, установите разрешения с помощью chmod вручную.

  • Запуск шеллскрипта вручную должен работать, но это также возможно через хрон или же удев или, может быть, какой-то другой способ следить за подключением внешних устройств.

  • Необходимы дополнительные сценарии оболочки (или командные строки) для размонтирования и очистки точек монтирования, и их должно быть проще создать.

Ответить или комментировать

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