Esto es algo que habíamos discutido en la escuela.
Va más o menos así,
- Cree un directorio (nombrado
data
, para referencia aquí)
- cambiar los permisos como "
chmod 711 data
"
- grupo y otros solo tienen
x
acceso para ingresar al directorio
- no pueden enumerar el directorio
- Ahora, cree un directorio
difficult-name-here
(esto podría ser una cadena hash)
- cambiar los permisos como "
chmod a+rx difficult-name-here
"
- el contenido de este directorio es seguro mientras que el directorio externo no se puede enumerar
- las personas que conocen el "nombre difícil" pueden saltar a este segundo directorio
- "
cd path/to/data/difficult-name-here
"
- otros no pueden ver el nombre y no pueden acceder al contenido del directorio
- Sin embargo,
root
siempre se puede acceder a todo (lo cual no es un problema aquí)
- compartir el
difficult-name-here
con las personas que desea dar estos datos
- Mantener archivos compartidos en este segundo directorio
Bastante crudo, pero si esto se puede romper sin la rotura del control de acceso de Unix, me gustaría saberlo.
Actualización sobre el comentario de dmckee
, ¡
Esta es exactamente la conclusión a la que llegamos!
"seguridad por oscuridad" tiene seguridad limitada .
Dicho esto, al diseñar la protección de datos,
es importante identificar su valor.
Debes apuntar a,
- Un costo de romper la seguridad que es más alto que,
- El costo del contenido seguro,
- Por un factor proporcional a tu paranoia
En este caso, si root
decide enumerar el árbol de directorios en algún lugar de acceso público, ¡
su secreto está fuera! Pero, ¿estás protegiendo desde la raíz o su potencial irresponsabilidad?
Si ese es el caso, tiene mucho más de qué preocuparse que los archivos compartidos.
Actualización sobre la nota que no funciona en la pregunta .
He usado esto en los primeros días de Linux para saber que funciona.
Si obtiene ' cannot access non-existant file
' en lugar de 'permissions denied
'' es muy probable que haya cometido un error en la secuencia. Lo que quieres debería verse así,
755 711 755 lo que sea - === Permisos de acceso
BasePath / CoverDir / Obscure / protectedFile.txt
El | El | ^^^^^^^^^^^^^^^^^ No se puede ver sin
El | ^^^^^^^ Nombre del directorio acceso de lectura a
^^^^^ Público compartido con amigo. Directorio oscuro.
accesible
directorio.
- Si configura "
CoverDir
acceder como 'rwx--x--x
",
group y otros solo pueden ingresar al directorio pero no pueden leer su contenido.
- Ahora, si usa un nombre de directorio oscuro
' Obscure
', dentro de él y le da acceso de lectura completo con ' rwxr-xr-x
',
cualquiera que conozca este nombre puede enumerar su contenido.
- Este acceso tendrá que ser hecho desde el exterior con un '
ls BasePath/CoverDir/Obscure
'
porque la gente en su grupo y otros no serán capaces de ' ls BasePath/CoverDir
'.