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

В настоящее время я пытаюсь написать пару конфигурационных файлов 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" 

  • Как добавить скрипты для udev для запуска
  • Как переназначить клавишу F на определенной клавиатуре?
  • Предотвращение / dev / sda *, sdb * от создания, оставляя / dev / disk / by-uuid / * или / dev / disk / by-label / * intact
  • Как отключить запрос пароля root при извлечении USB-накопителей?
  • Идентификатор диска в chroot / jail
  • Доступ к переменной по имени в udev?
  • «PS / 2 Generic Mouse» теряется. Как перезагрузиться без перезагрузки?
  • Переключение между раскладкой клавиатуры на основе входного события
  • One Solution collect form web for “Разрешить любому пользователю в группе предохранителей размонтировать”

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

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

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

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

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