Como fazer com que o udisksctl aja para outro usuário?

3

Conectado como usuário root, udisksctl mount monta meu dispositivo em /media/root/mydevice . Como alternativa, logado como outro usuário, udisksctl mount monta meu dispositivo em /media/anotheruser/mydevice .

Até agora, tudo bem. No entanto, eu gostaria de misturar os dois. Conectado como usuário root, gostaria que udisksctl mount montasse meu dispositivo em /media/anotheruser/mydevice . Motivo: quero que outro usuário possa acessar meu dispositivo.

Em outras palavras, logado como root, eu acho que eu quero fazer isso: udisksctl --user=anotheruser mount . Infelizmente, udisksctl parece não ter uma opção --user .

Isso não funciona: USER=anotheruser udisksctl mount .

O que devo fazer?

INFORMAÇÕES ADICIONAIS

Conectado como usuário root, o comando exato que estou emitindo é USER=thb udisksctl mount -b /dev/sda11 .

Eu pensei em fazer um wrapup setuid, mas isso não ajudaria, seria? O ponto de emitir o comando como root é ignorar a caixa de diálogo de autenticação da GUI udisksctl caso contrário, aparece.

Existe alguma técnica de D-Bus que possa ajudar? Eu ainda não aprendi bem o D-Bus. Em algum estágio no fluxo de controle, seja no estágio Udisks, no estágio D-Bus ou em algum outro estágio, preciso persuadir o sistema a agir para outro usuário sem fazer com que uma caixa de diálogo de autenticação da GUI indesejada seja exibida.

Isso deve ser possível para o usuário root, não é?

Minha plataforma é Debian 8 jessie.

    
por thb 04.07.2016 / 20:26

1 resposta

2

Sim, ou

su -c 'udisksctl mount -b /dev/sdd --no-user-interaction' - thb

ou

su - thb
udisksctl mount -b /dev/sdd --no-user-interaction
exit

montará /dev/sdd em, e. /media/thb/mydevice
sem fazer com que uma caixa de diálogo de autenticação da GUI indesejada seja exibida .

    
por 04.07.2016 / 21:01