[ Descargo de responsabilidad : no hay intención maliciosa de esta pregunta, estoy tratando de entender el comando ln -s para un proyecto escolar]
Decir que tengo un sistema de archivos con mi carpeta de inicio, /home/anna
. /home/bob
es una carpeta a la que no puedo acceder, con un archivo al que no puedo acceder,foo.txt
¿Puedo ejecutar con éxito ln -s /home/bob/foo.txt
en mi carpeta de inicio? ¿Es correcto suponer que si puedo, producirá un enlace al que no puedo acceder (con los mismos permisos que foo.txt
)?
¿Qué sucede si tengo privilegios de lectura foo.txt
, pero no tengo acceso /home/bob
?
¿Qué pasa con el caso inverso, donde podía acceder /home/bob
pero no leer foo.txt
?
permissions
symlink
MyStackRunnethOver
fuente
fuente
ls
mostrarálrwxrwxrwx
, así que es un poco incorrecto hablar sobre los permisos de un enlace.Respuestas:
Sí, puede crear un enlace simbólico a cualquier ubicación.
Correcto. Se aplican las restricciones de acceso del archivo de destino. Si crea un enlace simbólico a un recurso restringido, simplemente no podrá acceder a él. Ni siquiera se requiere que el archivo de destino realmente exista.
Una demostración:
Si no tiene permisos en el directorio principal, no puede acceder al archivo contenido . Entonces, con un enlace simbólico, aún no podrá acceder a él. Crear un enlace simbólico no afecta los permisos.
De nuevo, puede crear un enlace simbólico, pero no acceder al archivo.
fuente
/home
y se coloca en un grupo con el mismo nombre que su nombre de usuario, es decir, el usuario bob está en el grupo bob, hasta que se agrega a otros para evitar que los usuarios lean los archivos de los demás. En los viejos tiempos, todos los usuarios pertenecían a usuarios grupales, lo que permitía la intención maliciosa a la que aludía. Para que Anna pueda ver los archivos de Bob, Bob debe agregarla al grupo Bob.