Duda con fstab - Impedir que se pueda montar una unidad de disco

Iniciado por Aberroncho, 9 Mayo 2015, 23:48 PM

0 Miembros y 1 Visitante están viendo este tema.

Aberroncho

Hola,

Tengo un PC con arranque dual Xubuntu/Windows. Desde Xubuntu quiero impedir que se pueda montar la unidad de sistema de Windows.

En el fichero /etc/fstab he dado esta configuración a la partición de arranque de Windows:



UUID=0BCF61676AF0B759 /media/DiscoWindows ntfs-3g noauto,nouser 0 0




  • noauto para que no se monte automáticamente al arrancar
  • nouser para que sólo pueda montarla el usuario root

El punto de montaje, /media/DiscoWindows, es propiedad del usuario root y sólo él tiene permisos:



drwx------ 2 root root 4096 may  7 00:11 DiscoWindows



Al arracar el PC el disco no se monta automáticamente, pero si con un usuario normal haces doble click sobre el icono del disco en el escritorio, el disco se monta sin pedirte la clave de root y te lo abre en el navegador de archivos (Thunar) con permisos de lectura y escritura.

¿Cómo puedo hacer para que ese disco solo pueda montarlo el administrador?


Gracias.

"La ignorancia es la noche de la mente, pero una noche sin Luna ni estrellas."
(Confucio)

MinusFour

Parece que thunar-volman usa udisks que usa polkit. Estoy leyendo la pagina de udisks y en el segundo parrafo veo esto:

Citar
ACCESS CONTROL
       By default, logged-in users in active log-in sessions are permitted to perform operations (for example, mounting, unlocking or
       modifying) on devices attached to the seat their session is on. Access-control is fine-grained and based on polkit(8), see the
       "Authorization Checks" chapter in the udisks documentation for more information. Note that the x-udisks-auth option can be used in the
       /etc/fstab and /etc/crypttab files to specify that additional authorization is required to mount resp. unlock the device (typically
       requiring the user to authenticate as an administrator).

Parece ser que la opcion x-udisks-auth es lo que estas buscando.

Aberroncho

Muchas gracias por ponerme sobre la pista. No sabía lo de udisk y polkit. Francamente me parece complicarlo todo un poco con lo fácil que ha sido toda la vida cambiar el fstab y listo :P

Ahora en serio, debo estar torpe porque esto sigue sin funcionar en mi Xubuntu 14.04 LTS.

El /etc/fstab ahora está así:



UUID=0BCF61676AF0B759 /media/huron/DiscoWindows ntfs-3g noauto,nouser,x-udisks-auth 0 0



En el directorio /etc/polkit-1/localauthority/50-local.d no hay ningún archivo de políticas que sobreescriba la política general.

Y en /usr/share/polkit-1/actions/org.freedesktop.udisks2.policy he configurado las opciones de montar disco para que tenga en cuenta la opción x-udisks_auth del /etc/fstab



 <action id="org.freedesktop.udisks2.filesystem-mount">
   <description>Mount a filesystem</description>
   <description xml:lang="cs">Připojit souborový systém</description>
   <description xml:lang="da">Monter et filsystem</description>
   <description xml:lang="de">Ein Dateisystem einhängen</description>
   <description xml:lang="en_GB">Mount a filesystem</description>
   <description xml:lang="es">Montar un sistema de archivos</description>
   <description xml:lang="eu">Muntatu fitxategi-sistema bat</description>

...

   <defaults>
     <allow_any>auth_admin</allow_any>
     <allow_inactive>auth_admin</allow_inactive>
     <allow_active>auth_admin</allow_active>
   </defaults>
 </action>

...

 <action id="org.freedesktop.udisks2.filesystem-fstab">
   <description>Mount/unmount filesystems defined in the fstab file with the x-udisks-auth option</description>
   <description xml:lang="cs">Připojit/odpojit souborový systém definovaný v souboru fstab s volbou x-udisks-auth</description>
   <description xml:lang="da">Monter/afmonter filsystemer defineret i fstab-filen med tilvalget x-udisks-auth</description>
   <description xml:lang="de">Dateisysteme ein-/aushängen, welche in der Datei fstab definiert sind mit der Option »x-udisks-auth«</description>
   <description xml:lang="en_GB">Mount/unmount filesystems defined in the fstab file with the x-udisks-auth option</description>
   <description xml:lang="es">Montar/desmontar sistemas de archivos definidos en el archivo fstab con la opción x-udisks-auth</description>

...

   <defaults>
     <allow_any>auth_admin</allow_any>
     <allow_inactive>auth_admin</allow_inactive>
     <allow_active>auth_admin</allow_active>
   </defaults>
 </action>



A pesar de estos cambios y de haber reiniciado, el disco sigue montándose con un doble click de cualquier usuario :(

"La ignorancia es la noche de la mente, pero una noche sin Luna ni estrellas."
(Confucio)

MinusFour

#3
En la pagina de udisks esta esto:

Código (text) [Seleccionar]

<action id="org.freedesktop.udisks2.filesystem-fstab">
   <_description>Mount/unmount filesystems defined in the fstab file with the x-udisks-auth option</_description>
   <_message>Authentication is required to mount/unmount the filesystem</_message>
   <defaults>
     <allow_any>auth_admin</allow_any>
     <allow_inactive>auth_admin</allow_inactive>
     <allow_active>auth_admin_keep</allow_active>
   </defaults>
 </action>


http://udisks.freedesktop.org/docs/latest/udisks-polkit-actions.html

Edit: No creo que sea cosa de auth_admin_keep. Parece que simplemente extiende un periodo de gracia para la autentificacion, como sudo. Viendo el wiki de arch sobre polkit parece que hay politicas por grupo o mas bien que tienen preferencia sobre los defaults. Hay reglas debajo de /etc/polkit-1/rules.d y /usr/share/polkit-1/rules.d al menos en mi arch.

En arch parece ser que el grupo es storage:


/etc/polkit-1/rules.d/50-udisks.rules

polkit.addRule(function(action, subject) {
  var YES = polkit.Result.YES;
  var permission = {
    // only required for udisks1:
    "org.freedesktop.udisks.filesystem-mount": YES,
    "org.freedesktop.udisks.filesystem-mount-system-internal": YES,
    "org.freedesktop.udisks.luks-unlock": YES,
    "org.freedesktop.udisks.drive-eject": YES,
    "org.freedesktop.udisks.drive-detach": YES,
    // only required for udisks2:
    "org.freedesktop.udisks2.filesystem-mount": YES,
    "org.freedesktop.udisks2.filesystem-mount-system": YES,
    "org.freedesktop.udisks2.encrypted-unlock": YES,
    "org.freedesktop.udisks2.eject-media": YES,
    "org.freedesktop.udisks2.power-off-drive": YES,
    // required for udisks2 if using udiskie from another seat (e.g. systemd):
    "org.freedesktop.udisks2.filesystem-mount-other-seat": YES,
    "org.freedesktop.udisks2.encrypted-unlock-other-seat": YES,
    "org.freedesktop.udisks2.eject-media-other-seat": YES,
    "org.freedesktop.udisks2.power-off-drive-other-seat": YES
  };
  if (subject.isInGroup("storage")) {
    return permission[action.id];
  }
});

Aberroncho

Muchas gracias por contestar.

La configuración que viene en la página de udisk es la que tenía por defecto y no funcionaba. Cambié el auth_admin_keep por el auth_admin para probar y tampoco me hizo caso.

Por lo que he podido ver, en Xubuntu las reglas están en el directorio /etc/polkit-1/localauthority/, pero aquí no hay reglas adicionales para los volúmenes de disco que puedan estar sobreescribiendo las generales.

Y la configuración general está en /usr/share/polkit-1/actions que es donde he hecho los cambios. Algo debe hacer porque en uno de los experimentos he conseguido que sea necesario introducir la clave de root para montar los USB, pero con la partición del disco no he sido capaz... todavía ;)

Mañana seguiré dándole más vueltas a esto. Ya es cuestión de orgullo  :)




"La ignorancia es la noche de la mente, pero una noche sin Luna ni estrellas."
(Confucio)

MinusFour

Cita de: Aberroncho en 11 Mayo 2015, 23:18 PM
Muchas gracias por contestar.

La configuración que viene en la página de udisk es la que tenía por defecto y no funcionaba. Cambié el auth_admin_keep por el auth_admin para probar y tampoco me hizo caso.

Por lo que he podido ver, en Xubuntu las reglas están en el directorio /etc/polkit-1/localauthority/, pero aquí no hay reglas adicionales para los volúmenes de disco que puedan estar sobreescribiendo las generales.

Y la configuración general está en /usr/share/polkit-1/actions que es donde he hecho los cambios. Algo debe hacer porque en uno de los experimentos he conseguido que sea necesario introducir la clave de root para montar los USB, pero con la partición del disco no he sido capaz... todavía ;)

Mañana seguiré dándole más vueltas a esto. Ya es cuestión de orgullo  :)






No estoy seguro de la estructura de archivos bajo Xubuntu puedes poner el resultado de:

Código (bash) [Seleccionar]

ls -laR /etc/polkit-1 /usr/share/polkit-1/


Creo que tambien hay archivos de configuracion bajo /var/lib/polkit-1

Aberroncho

Perdona que haya tardado tanto en contestar. He estado muy liado con el trabajo y no he tenido tiempo de juguetear con estas cosas ;)

La captura de ambos ls -laR ejecutados con "root" es:


root@madriguera:/home/huron#     ls -laR /etc/polkit-1 /usr/share/polkit-1/
/etc/polkit-1:
total 28
drwxr-xr-x   5 root root  4096 feb 18 20:37 .
drwxr-xr-x 140 root root 12288 may 19 23:05 ..
drwx------   7 root root  4096 feb 18 20:37 localauthority
drwxr-xr-x   2 root root  4096 may 11 23:11 localauthority.conf.d
drwxr-xr-x   2 root root  4096 may  1 15:10 nullbackend.conf.d

/etc/polkit-1/localauthority:
total 28
drwx------ 7 root root 4096 feb 18 20:37 .
drwxr-xr-x 5 root root 4096 feb 18 20:37 ..
drwxr-xr-x 2 root root 4096 feb 11  2014 10-vendor.d
drwxr-xr-x 2 root root 4096 feb 11  2014 20-org.d
drwxr-xr-x 2 root root 4096 feb 11  2014 30-site.d
drwxr-xr-x 2 root root 4096 feb 11  2014 50-local.d
drwxr-xr-x 2 root root 4096 feb 11  2014 90-mandatory.d

/etc/polkit-1/localauthority/10-vendor.d:
total 8
drwxr-xr-x 2 root root 4096 feb 11  2014 .
drwx------ 7 root root 4096 feb 18 20:37 ..

/etc/polkit-1/localauthority/20-org.d:
total 8
drwxr-xr-x 2 root root 4096 feb 11  2014 .
drwx------ 7 root root 4096 feb 18 20:37 ..

/etc/polkit-1/localauthority/30-site.d:
total 8
drwxr-xr-x 2 root root 4096 feb 11  2014 .
drwx------ 7 root root 4096 feb 18 20:37 ..

/etc/polkit-1/localauthority/50-local.d:
total 8
drwxr-xr-x 2 root root 4096 feb 11  2014 .
drwx------ 7 root root 4096 feb 18 20:37 ..

/etc/polkit-1/localauthority/90-mandatory.d:
total 8
drwxr-xr-x 2 root root 4096 feb 11  2014 .
drwx------ 7 root root 4096 feb 18 20:37 ..

/etc/polkit-1/localauthority.conf.d:
total 16
drwxr-xr-x 2 root root 4096 may 11 23:11 .
drwxr-xr-x 5 root root 4096 feb 18 20:37 ..
-rw-r--r-- 1 root root  267 feb 11  2014 50-localauthority.conf
-rw-r--r-- 1 root root   65 feb 11  2014 51-ubuntu-admin.conf

/etc/polkit-1/nullbackend.conf.d:
total 12
drwxr-xr-x 2 root root 4096 may  1 15:10 .
drwxr-xr-x 5 root root 4096 feb 18 20:37 ..
-rw-r--r-- 1 root root  455 feb 11  2014 50-nullbackend.conf

/usr/share/polkit-1/:
total 20
drwxr-xr-x   3 root root  4096 feb 18 20:36 .
drwxr-xr-x 264 root root 12288 may  3 18:35 ..
drwxr-xr-x   2 root root  4096 may 11 23:03 actions

/usr/share/polkit-1/actions:
total 600
drwxr-xr-x 2 root root   4096 may 11 23:03 .
drwxr-xr-x 3 root root   4096 feb 18 20:36 ..
-rw-r--r-- 1 root root   1208 abr  2  2014 com.canonical.indicator.sound.AccountsService.policy
-rw-r--r-- 1 root root    703 may 13  2014 com.hp.hplip.policy
-rw-r--r-- 1 root root  21824 abr 16 16:15 com.ubuntu.apport.policy
-rw-r--r-- 1 root root    790 sep 18  2014 com.ubuntu.languageselector.policy
-rw-r--r-- 1 root root   3516 may 17  2014 com.ubuntu.pkexec.synaptic.policy
-rw-r--r-- 1 root root  19584 feb  4 19:27 com.ubuntu.release-upgrader.policy
-rw-r--r-- 1 root root    848 ene 21 14:44 com.ubuntu.softwareproperties.policy
-rw-r--r-- 1 root root   1233 oct  7  2014 com.ubuntu.update-notifier.policy
-rw-r--r-- 1 root root   3412 abr 10  2014 org.blueman.policy
-rw-r--r-- 1 root root   6041 jun 10  2014 org.debian.apt.policy
-rw-r--r-- 1 root root    783 feb 23  2014 org.debian.aptxapianindex.policy
-rw-r--r-- 1 root root  19721 jul 22  2014 org.freedesktop.accounts.policy
-rw-r--r-- 1 root root  48818 ene 16  2014 org.freedesktop.color.policy
-rw-r--r-- 1 root root   2773 feb 19 22:30 org.freedesktop.hostname1.policy
-rw-r--r-- 1 root root   1878 feb 19 22:30 org.freedesktop.locale1.policy
-rw-r--r-- 1 root root  21211 feb 19 22:30 org.freedesktop.login1.policy
-rw-r--r-- 1 root root 128656 abr 28 13:59 org.freedesktop.NetworkManager.policy
-rw-r--r-- 1 root root   1524 mar  4 23:45 org.freedesktop.policykit.policy
-rw-r--r-- 1 root root   1489 oct 25  2013 org.freedesktop.RealtimeKit1.policy
-rw-r--r-- 1 root root   1290 ene 28 20:55 org.freedesktop.SystemToolsBackends.policy
-rw-r--r-- 1 root root   3507 feb 19 22:30 org.freedesktop.timedate1.policy
-rw-r--r-- 1 root root 222499 may 11 23:03 org.freedesktop.udisks2.policy
-rw-r--r-- 1 root root  24576 may 11 23:03 .org.freedesktop.udisks2.policy.swp
-rw-r--r-- 1 root root   2290 dic 21  2013 org.freedesktop.upower.policy
-rw-r--r-- 1 root root   5133 dic 21  2013 org.freedesktop.upower.qos.policy
-rw-r--r-- 1 root root    876 jun 18  2014 org.xfce.power.policy
-rw-r--r-- 1 root root    892 ene 28 20:22 org.x.xf86-video-intel.backlight-helper.policy
root@madriguera:/home/huron# ls -laR /var/lib/polkit-1
/var/lib/polkit-1:
total 12
drwx------  3 root root 4096 feb 18 20:37 .
drwxr-xr-x 70 root root 4096 may  2 14:30 ..
drwxr-xr-x  7 root root 4096 feb 18 20:37 localauthority

/var/lib/polkit-1/localauthority:
total 28
drwxr-xr-x 7 root root 4096 feb 18 20:37 .
drwx------ 3 root root 4096 feb 18 20:37 ..
drwxr-xr-x 2 root root 4096 feb 18 20:38 10-vendor.d
drwxr-xr-x 2 root root 4096 feb 11  2014 20-org.d
drwxr-xr-x 2 root root 4096 feb 11  2014 30-site.d
drwxr-xr-x 2 root root 4096 feb 11  2014 50-local.d
drwxr-xr-x 2 root root 4096 feb 11  2014 90-mandatory.d

/var/lib/polkit-1/localauthority/10-vendor.d:
total 16
drwxr-xr-x 2 root root 4096 feb 18 20:38 .
drwxr-xr-x 7 root root 4096 feb 18 20:37 ..
-rw-r--r-- 1 root root  196 abr  2  2014 50-com.canonical.indicator.sound.AccountsService.pkla
-rw-r--r-- 1 root root 1821 feb 17  2014 com.ubuntu.desktop.pkla

/var/lib/polkit-1/localauthority/20-org.d:
total 8
drwxr-xr-x 2 root root 4096 feb 11  2014 .
drwxr-xr-x 7 root root 4096 feb 18 20:37 ..

/var/lib/polkit-1/localauthority/30-site.d:
total 8
drwxr-xr-x 2 root root 4096 feb 11  2014 .
drwxr-xr-x 7 root root 4096 feb 18 20:37 ..

/var/lib/polkit-1/localauthority/50-local.d:
total 8
drwxr-xr-x 2 root root 4096 feb 11  2014 .
drwxr-xr-x 7 root root 4096 feb 18 20:37 ..

/var/lib/polkit-1/localauthority/90-mandatory.d:
total 8
drwxr-xr-x 2 root root 4096 feb 11  2014 .
drwxr-xr-x 7 root root 4096 feb 18 20:37 ..


A ver si tengo un ratillo y sigo dándole vueltas a esto. Seguro que es una tontería.

Salu2.
"La ignorancia es la noche de la mente, pero una noche sin Luna ni estrellas."
(Confucio)

MinusFour

Googleando un poco parece ser que es el:

/var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla

Tienes que cambiar el ResultActive.

[Mounting, checking, etc. of internal drives]
Identity=unix-group:admin
Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart*
ResultActive=yes


De yes a auth_admin.

No se si tengas que reiniciar el equipo.