Como exigir montagem com senha de outras partições internas do disco rígido para todos os aplicativos de estilo de montagem (com udev)

Como exigir montagem com senha de outras partições internas do disco rígido para todos os aplicativos de estilo de montagem (com udev)

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

O FSTAB se encarrega de usar o mount com senha. Caso não esteja no FSTAB, será necessária uma senha.

Para Nautilus e udisks, eu estava tentando o udev configurando comandos ENV{UDISKS_ como estes:

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

Eu verifiquei que os ENV são adicionados usando

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

Mas isso não parece impedir que o Nautilus ou os udisks (não-gksudo) montem a partição quando clicados.

Gostaria que solicitasse uma senha quando tentar. Como está especificado aqui:

http://manpages.ubuntu.com/manpages/precise/man7/udisks.7.html

Se definido, isso substituirá a detecção usual baseada no tipo de barramento para saber se um dispositivo é considerado "interno do sistema". "0" significa "removível" (ou seja, elegível para montagem automática e usuários normais podem montar), qualquer outro valor significa "interno do sistema" (ou seja, sem montagem automática e apenas administradores podem montar).

Desde já, obrigado.

PS Em contraste, usando este

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

impede que o Nautilus apresente a partição na seção de dispositivos. Embora ocultar provavelmente não impeça os udisks de montá-lo de qualquer maneira (não tentei isso).

Responder1

A solução está aqui no Reddit:Como o Ubuntu permite a montagem de dispositivos de bloco internos sem autenticação?

BTW: eu uso o linuxmint-mate 19.1 (tessa) e 18.3 (Sylvia), ambos lançamentos LTS - baseados no pacote Ubuntu Bionic. Eu não testei no próprio Ubuntu.

Basta abrir o arquivo como root /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pklae alterar a linha

Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart*;org.freedesktop.udisks2.filesystem-mount-system;org.freedesktop.udisks2.encrypted-unlock-system;org.freedesktop.udisks2.filesystem-fstab;

para este:

Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart*;org.freedesktop.udisks2.encrypted-unlock-system;org.freedesktop.udisks2.filesystem-fstab;

Como você pode ver, basta deletar esta parte da linha:

org.freedesktop.udisks2.filesystem-mount-system;

Assim, a cada solicitação de montagem de uma partição no Caja, será aberta uma janela de solicitação de autenticação para montá-la;

Você nem precisa reiniciar ou encerrar a sessão do usuário.
Funciona perfeitamente para mim.

Responder2

Acho que isso deveria ser possível com PolicyKit/polkitregras, em vez de editá udev-las 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 Recursos man pklocalauthority) e exija autenticação para executar esta ação. Crie um arquivo chamado, por exemplo, /etc/polkit-1/localauthority.conf.d/50-disable-automount.pklacontendo:

[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 mais alguns detalhes (por exemplo, existem ações mais específicas, como org.freedesktop.udisks.filesystem-mount-system-internalas que presumivelmente se aplicam apenas aos discos rígidos locais, em vez de aos dispositivos USB, e você pode escolher auth_adminou auth_admin_keepdependendo se deseja que uma senha inserida recentemente seja suficiente) .

Não tenho certeza absoluta de algumas semânticas do kit de políticas, e a documentação parece um pouco escassa, então talvez seja necessário brincar um pouco, mas acho que esta é a maneira certa de fazer isso. Veraquipara as permissões padrão do kit de políticas para ações no Ubuntu.

informação relacionada