Como requerer a montagem com a senha de outras partições hdd internas para todos os aplicativos de estilo de montagem (com o udev)

0

Estou tentando bloquear o acesso a outras partições com sistemas de arquivos diferentes no mesmo disco rígido físico (layout: gpt), impedindo qualquer montagem de partição sem exigir uma senha.

O FSTAB cuida do uso de montagem com senha. Se não estiver no FSTAB, será necessária uma senha.

Para o Nautilus e udisks, eu estava tentando o udev definindo os comandos ENV {UDISKS_ da seguinte forma:

KERNEL=="sda10", ENV{UDISKS_PRESENTATION_NOPOLICY}="1", ENV{UDISKS_SYSTEM_INTERNAL}="1"

Eu verifiquei que o ENV é adicionado usando

udevadm info --name="/dev/sda10" --query=all

Mas isso não parece parar (não-gksudo) Nautilus ou udisks de montar a partição quando clicado.

Eu gostaria que ele solicitasse uma senha quando tentasse. Como é especificado aqui:

link

If set, this will override the usual bus type based detection of whether a device is considered "system internal". "0" means "removable" (i. e. eligible for automounting, and normal users can mount), any other value means "system internal" (i. e. no automounting, and only administrators can mount).

Obrigado antecipadamente.

P.S. Em contraste, usando isso

KERNEL == "sda10", ENV {UDISKS_PRESENTATION_HIDE}="1"

impede que o Nautilus apresente a partição na seção de dispositivos. Tudo o que se esconde provavelmente não impede que os udisks o montem de qualquer maneira (não tentei isso).

    
por Arvo 07.02.2014 / 13:50

1 resposta

0

Acho que isso deve ser possível com as regras PolicyKit/polkit , em vez de editar as regras udev diretamente.

Por padrão, em 12.04, a montagem é permitida por padrão.

user@precise:~$ pkaction --verbose --action-id org.freedesktop.udisks.filesystem-mount
org.freedesktop.udisks.filesystem-mount:
  description:       Mount a device
  message:           Authentication is required to mount the device
  vendor:            The udisks Project
  vendor_url:        http://udisks.freedesktop.org/
  icon:              drive-removable-media
  implicit any:      no
  implicit inactive: no
  implicit active:   yes

Deve ser possível criar uma regra local que substitua isso (consulte man pklocalauthority ) e exige autenticação para executar essa ação. Crie um arquivo chamado, por exemplo, /etc/polkit-1/localauthority.conf.d/50-disable-automount.pkla contendo:

[Disable automount]
Identity=unix-user:*
Action=org.freedesktop.udisks.filesystem-mount
ResultAny=auth_admin
ResultInactive=auth_admin
ResultActive=auth_admin

Talvez seja necessário investigar alguns detalhes adicionais (por exemplo, há ações mais específicas, como org.freedesktop.udisks.filesystem-mount-system-internal , que presumivelmente se aplicam apenas aos seus discos rígidos locais, em vez de pen drives, e você pode escolher auth_admin ou auth_admin_keep se você deseja que uma senha inserida recentemente seja suficiente).

Eu não estou completamente certo de algumas semânticas do policykit, e a documentação parece ser um pouco esparsa, então você pode precisar jogar um pouco, mas eu acho que esse é o jeito certo de fazer isso. Veja aqui as permissões padrão do policykit para ações no Ubuntu.

    
por chronitis 07.02.2014 / 15:55