Разрешить любому пользователю в группе предохранителей размонтировать

В настоящее время я пытаюсь написать пару конфигурационных файлов systemd / udev, которые позволят мне авторизовать / отключать устройства MTP Android на моем ноутбуке Arch Linux. Это заняло у меня некоторое время, но пока это работает очень хорошо.

Теперь я хотел бы, чтобы любой пользователь с разрешениями fuse смог размонтировать устройство. Пока это возможно только для того же пользователя, что и один go-mtpfs .

Я хорошо знаю, что MTP спроектирован таким образом, что вы можете просто отключить устройство без каких-либо последствий, но при появлении сообщения об ошибке при нажатии «Извлечь» в Nautilus это неожиданно и не очень приятно.

Я попробовал следующее, но не смог:

  • Добавьте себя в группу fuse , запустите go-mtpfs как root и попытайтесь размонтировать себя
  • Запустите go-mtpfs в качестве пользователя и группы fuse и попытайтесь размонтировать себя как я, также в группе fuse

Есть идеи? Кроме того, если у вас есть элегантный способ достичь того же самого, не полагаясь на группу fuse , я бы хотел услышать об этом!

systemd service (/etc/systemd/system/android-mtp.service) :

 [Service] Type=forking ExecStartPre=/bin/mkdir -p /media/Android ExecStart=/usr/sbin/daemonize -l /var/lock/go-mtpfs.lock /usr/bin/go-mtpfs -allow-other=true /media/Android ExecStop=/bin/umount /media/Android ExecStopPost=/bin/rmdir /media/Android 

правило udev (/etc/udev/rules.d/99-android-mtp.rules) :

 # Google Nexus 7 16 Gb Bootloader & recovery mode SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0666" # Bootloader SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666" # Recovery # Google Nexus 7 16 Gb PTP mode (camera) SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e43", MODE="0666" # PTP media SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e44", MODE="0666" # PTP media with USB debug on # Google Nexus 7 16 Gb MTP mode (multimedia device) SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e41", MODE="0666" # MTP media SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0666" # MTP media with USB debug on # Google Nexus 7 MTP mode : automatic unmount when unplugged (all android versions) ENV{ID_MODEL}=="Nexus", ENV{ID_MODEL_ID}=="4e41", ACTION=="remove", RUN+="/usr/bin/systemctl stop android-mtp.service" ENV{ID_MODEL}=="Nexus", ENV{ID_MODEL_ID}=="4e42", ACTION=="remove", RUN+="/usr/bin/systemctl stop android-mtp.service" ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e41", ACTION=="remove", RUN+="/usr/bin/systemctl stop android-mtp.service" ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e42", ACTION=="remove", RUN+="/usr/bin/systemctl stop android-mtp.service" # Google Nexus 7 MTP mode : automatic mount when plugged (all android versions) ENV{ID_MODEL}=="Nexus", ENV{ID_MODEL_ID}=="4e41", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}="android-mtp.service" ENV{ID_MODEL}=="Nexus", ENV{ID_MODEL_ID}=="4e42", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}="android-mtp.service" ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e41", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}="android-mtp.service" ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e42", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}="android-mtp.service" 

  • Не добавляйте новые интерфейсы Ethernet, используйте его как eth0
  • arch linux неправильно распознает разделы и жесткие диски
  • Предотвратите использование USB-накопителя при использовании другого устройства при сбросе
  • Предотвращение создания определенных узлов / dev / input / event
  • Поддельный серийный номер USB-устройства
  • Как указать конкретный продукт в файле udev hwdb?
  • Игнорировать имя интерфейса?
  • Как устранить неисправность udev, не создавая / dev / hda3 при загрузке gentoo?
  • One Solution collect form web for “Разрешить любому пользователю в группе предохранителей размонтировать”

    Группа fuse предназначена для указания, кто может монтировать файловые системы FUSE. Цель заключается не в том, что кто-либо из этой группы может отключить файловые системы, установленные другими. Только пользователь, выполняющий монтаж, или root, может размонтировать файловую систему.

    Вы можете использовать sudo для авторизации пользователей в группе fuse для запуска команды unmount в качестве того же пользователя, который сделал монтаж. Запустите visudo чтобы добавить строку, например:

     %fuse ALL = (fuse) fusermount -u /media/Android 

    Почему вы не делаете монтаж как вы? Это обычный способ использования FUSE.

    Interesting Posts

    Установка Mujoco из тренажерного зала AI на Windows 10 (для исследований)

    Как узнать, является ли текстовый файл подмножеством другого

    Как заставить SLiM ничего не отображать при входе в систему?

    Как устранить крах дисплея для графического драйвера Radeon R7 260x?

    Как обменивать целые html-блоки в нескольких файлах с помощью sed

    Как заставить кнопки навигации и расширения появляться во всплывающем окне в Chrome?

    Какие места следует использовать для сброса флэш-памяти из электронных компонентов на жестких дисках?

    Соответствие гексадецималов с gawk

    Shellcheck жалуется, что я не должен читать и писать тот же файл в том же конвейере

    Права доступа к автоматическим каталогам внутри / медиа

    Как я могу запретить моему Wi-Fi-драйверу кататонический?

    Может ли пользователь Linux иметь несколько основных групп пользователей?

    SUID случайно удален из файла / bin / su

    Почему cd не является программой?

    Как удалить постоянные данные конфигурации из APT?

    Linux и Unix - лучшая ОС в мире.