Utilice EncFS para cifrar archivos de modo que un usuario o proceso en particular pueda acceder a ellos, pero root no

Utilice EncFS para cifrar archivos de modo que un usuario o proceso en particular pueda acceder a ellos, pero root no

Tengo un proceso al que me gustaría tener acceso a un sistema de archivos cifrado. Esto es muy fácil de hacer con EncFS, pero requiere que un usuario monte el sistema de archivos cifrados, por lo tanto, le da a cualquier usuario que tenga acceso al usuario de montaje acceso a los datos, por ejemplo, root.

¿Es posible hacer que el proceso monte el sistema de archivos para que solo él tenga acceso a los datos? Si no es así, ¿existe otra forma de evitar que quienes no conocen la frase de contraseña accedan a los datos?

Respuesta1

Lo que dijo Gilles es correcto, no se puede evitar que root acceda al soporte. Es posible que no pueda acceder al soporte directamente (sin la allow_otheropción de fusible), pero siempre puede cambiar a ese usuario.

Sin embargo, lo que puede hacer es desmontar el montaje de forma diferida después de que el proceso haya cambiado su directorio de trabajo actual al punto de montaje. Una vez que el proceso esté dentro del punto de montaje, puede realizar un desmontaje diferido. Esto evitará que cualquier proceso nuevo pueda acceder al punto de montaje, pero los procesos que se estaban ejecutando dentro de él seguirán teniendo acceso.


Ejemplo

encfs /enc/source /enc/target
( cd /enc/target && some_long_running_process) &
fusermount -uz /enc/target

some_long_running_process, y cualquier proceso secundario que genere tendrá acceso completo al punto de montaje. Pero si algo que no sea hijo de ese proceso intenta acceder al montaje, simplemente obtendrá un directorio vacío.


Tenga en cuenta que hay una breve ventana donde está disponible el punto de montaje, en la que algo más puede cambiar el directorio, pero la ventana es muy pequeña si está escrita.

También tenga en cuenta que todavía hay algunas formas en que root podría obtener acceso al punto de montaje, pero no son simples y sonmuyhackear.

Respuesta2

Sólo el usuario montador puede acceder al sistema de archivos encfs. Incluso los procesos que se ejecutan como root obtienen un error de "permiso denegado"; por supuesto, pueden cambiar al usuario de montaje y luego acceder a los datos.

Es imposible hacer que los datos sean inaccesibles para el root. Por definición, root es todopoderoso y tiene acceso a todo. No puedes evitar que root acceda a los archivos más de lo que puedes evitar que Dios/Santa/tus padres/…¹ sepan lo que hiciste ayer por la noche. Si no confía en un usuario, no le dé el privilegio de ejecutar comandos como root.

¹ Elija el que corresponda.

Respuesta3

Bueno, según esta sesión de preguntas y respuestas titulada:encfs con acceso esperado denegadoParece que ni siquiera el root puede acceder a EncFS si un usuario en particular realizó el montaje.

extracto

Pero parece que utilizó su usuario habitual para montar el directorio cifrado y luego está intentando ver los archivos montados con root usando sudo. Eso no funcionará, y es el objetivo de encfs.

En su ejemplo, el directorio cr es el almacenamiento utilizado por encfs. El contenido de esto no es un gran secreto: son datos cifrados. Estás montando estos datos en mn, para que puedas ver su contenido de forma legible por humanos, como archivos en mn.

Sólo el usuario que monte cr podrá leer lo que hay dentro de mn. Ni siquiera root puede hacerlo.

Pero para el usuario más experto, no hay nada que impida que root simplemente haga su - <user>y se convierta en ese usuario, para poder acceder al recurso compartido EncFS montado.

Como se ha dicho muchas veces en este sitio, no hay nada que pueda hacer para impedir que root acceda a cualquier cosa que sea local del sistema. Así es como funciona el sistema. Lo mismo puede decirse del administrador en un sistema Windows.

información relacionada