Se você entende o que está acontecendo em esta resposta, é fácil mudá-la para a maneira que você quer se comportar.
Basta criar um arquivo chamado /etc/polkit-1/localauthority/90-mandatory.d/external_mnt.pkla
com o seguinte contexto:
[external mount pass]
Identity=unix-group:admin;unix-group:sudo
Action=org.freedesktop.udisks.filesystem-mount
ResultActive=auth_admin_keep
Isso deve pedir uma senha quando um dispositivo externo é montado, mas não deve perguntar quando um interno é montado.
Onde encontrar mais informações sobre essas coisas: Nos manuais: man pklocalauthority
e man polkit
.
Em relação ao comentário: How does the system know to only ask on external drives?
Para saber que você deve procurar no código-fonte de udisks
, device.c , na linha 6674 inicia uma ramificação if, que é:
if (is_device_in_fstab (device, NULL))
{
action_id = NULL;
}
else
{
if (device->priv->device_is_system_internal)
action_id = "org.freedesktop.udisks.filesystem-mount-system-internal";
else
action_id = "org.freedesktop.udisks.filesystem-mount";
}
Você pode ver que org.freedesktop.udisks.filesystem-mount
é apenas para montagens que não são consideradas internas. E o que é considerado interno? Isso também é codificado nesse arquivo, basta procurar se você é curioso.
Nota: acabei de testar isso e funcionou para mim.