Cómo requerir el montaje con contraseña de otras particiones internas del disco duro para todas las aplicaciones de estilo montaje (con udev)

Cómo requerir el montaje con contraseña de otras particiones internas del disco duro para todas las aplicaciones de estilo montaje (con udev)

Estoy intentando bloquear el acceso a otras particiones con diferentes sistemas de archivos en el mismo disco duro físico (diseño: gpt) impidiendo el montaje de cualquier partición sin requerir una contraseña.

FSTAB se encarga de usar el montaje con contraseña. Si no está en FSTAB, requerirá una contraseña.

Para Nautilus y udisks, estaba intentando que udev configurara comandos ENV{UDISKS_ como estos:

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

He verificado que los ENV se agregan usando

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

Pero esto no parece impedir que Nautilus o udisks (que no sean gksudo) monten la partición cuando se hace clic.

Me gustaría que me solicite una contraseña cuando lo intente. Como se especifica aquí:

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

Si se configura, esto anulará la detección habitual basada en el tipo de bus de si un dispositivo se considera "interno del sistema". "0" significa "extraíble" (es decir, apto para montaje automático y los usuarios normales pueden montarlo), cualquier otro valor significa "interno del sistema" (es decir, sin montaje automático y sólo los administradores pueden montar).

Gracias de antemano.

PD: En contraste, usar esto

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

impide que Nautilus presente la partición en la sección de dispositivos. Aunque ocultarlo probablemente no impida que los udisks lo monten de todos modos (no lo he probado).

Respuesta1

La solución está aquí en Reddit:¿Cómo permite Ubuntu el montaje de dispositivos de bloque internos sin autenticación?

Por cierto: uso linuxmint-mate 19.1 (tessa) y 18.3 (Sylvia), ambas versiones LTS, basadas en el paquete Ubuntu Bionic. No probé en ubuntu.

Simplemente abra como root el archivo /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pklay cambie la línea.

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;

a este:

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

Como puedes ver, simplemente elimina esta parte de la línea:

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

Entonces, en cada solicitud para montar una partición en Caja, se abrirá una ventana de solicitud de autenticación para montarla;

Ni siquiera necesita reiniciar o salir de su sesión de usuario.
Funciona perfectamente para mí.

Respuesta2

Creo que esto debería ser posible con PolicyKit/polkitreglas, en lugar de editarlas udevdirectamente.

De forma predeterminada, en 12.04, se permite el montaje de forma predeterminada.

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

Debería ser posible crear una regla local que anule esto (consulte man pklocalauthority) y requiera autenticación para realizar esta acción. Cree un archivo llamado, que /etc/polkit-1/localauthority.conf.d/50-disable-automount.pklacontenga, por ejemplo:

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

Es posible que deba investigar algunos detalles adicionales (por ejemplo, hay acciones más específicas que org.freedesktop.udisks.filesystem-mount-system-internalpresumiblemente se aplican solo a sus discos duros locales en lugar de a las memorias USB, y puede elegir entre ambas opciones auth_admindependiendo auth_admin_keepde si desea que una contraseña ingresada recientemente sea suficiente) .

No estoy completamente seguro de algunas de las semánticas de Policykit y la documentación parece ser un poco escasa, por lo que es posible que tengas que jugar un poco, pero creo que esta es la forma correcta de hacerlo. Veraquípara conocer los permisos predeterminados del kit de políticas para acciones en Ubuntu.

información relacionada