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.pkla
e 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/polkit
regras, 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.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 mais alguns detalhes (por exemplo, existem ações mais específicas, como org.freedesktop.udisks.filesystem-mount-system-internal
as que presumivelmente se aplicam apenas aos discos rígidos locais, em vez de aos dispositivos USB, e você pode escolher auth_admin
ou auth_admin_keep
dependendo 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.