Permitir que qualquer usuário no grupo de fusíveis desmonte

3

Atualmente, estou tentando gravar alguns arquivos de configuração systemd / udev que me permitirão automontar / desmontar dispositivos Android MTP em meu laptop Arch Linux. Demorei algum tempo, mas até agora funciona muito bem.

Agora, gostaria que qualquer usuário com permissões fuse pudesse desmontar o dispositivo. Até agora, só é possível para o mesmo usuário que o go-mtpfs foi iniciado.

Estou ciente de que o MTP foi projetado para que você possa simplesmente desconectar o dispositivo sem consequências, mas ter uma mensagem de erro ao clicar em "Ejetar" no Nautilus é inesperado e não muito legal.

Eu tentei o seguinte, mas falhei:

  • Adicione-se ao grupo fuse , inicie go-mtpfs como root e tente desmontar como eu mesmo
  • Inicie o go-mtpfs como o usuário e grupo fuse e tente desmontar como eu mesmo, também no grupo fuse

Alguma ideia? Além disso, se você tiver uma maneira elegante de conseguir a mesma coisa sem precisar depender do grupo fuse , adoraria ouvir isso!

serviço systemd (/ 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

regra do 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"
    
por F.X. 02.12.2012 / 16:51

1 resposta

1

O grupo fuse destina-se a indicar quem pode montar sistemas de arquivos FUSE. A intenção não é que qualquer pessoa nesse grupo possa desmontar sistemas de arquivos montados por outros. Somente o usuário que está fazendo a montagem, ou root, pode desmontar o sistema de arquivos.

Você pode usar sudo para autorizar os usuários no grupo fuse a executar um comando de desmontar como o mesmo usuário que fez a montagem. Execute visudo para adicionar uma linha como:

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

Por que você não está montando sozinho? Essa é a maneira usual de usar o FUSE.

    
por 03.12.2012 / 00:03