¿Puedo crear un enlace simbólico a un archivo al que no puedo acceder?

8

[ 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/bobes 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.txten 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/bobpero no leer foo.txt?

MyStackRunnethOver
fuente
44
Puede crear un enlace simbólico a prácticamente cualquier cosa, incluidas las cosas que no existen.
muru
1
Técnicamente, el enlace simbólico no tiene ningún permiso propio, y normalmente lo lsmostrará lrwxrwxrwx, así que es un poco incorrecto hablar sobre los permisos de un enlace.
Henrik apoya a la comunidad el

Respuestas:

9

Sí, puede crear un enlace simbólico a cualquier ubicación.

¿Puedo ejecutar con éxito ln -s /home/bob/foo.txten 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)?

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:

$ ln -s /etc/shadow foo
$ file foo
foo: symbolic link to /etc/shadow
$ cat foo
cat: foo: Permission denied

$ ln -s /etc/nonexistent bar
$ file bar
bar: broken symbolic link to /etc/nonexistent

¿Qué sucede si tengo privilegios de lectura foo.txt, pero no tengo acceso /home/bob?

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.

¿Qué pasa con el caso inverso, donde podía acceder /home/bobpero no leer foo.txt?

De nuevo, puede crear un enlace simbólico, pero no acceder al archivo.

Arminio
fuente
2
@ 4o2 Dado que esto es correcto, estoy comentando aquí para dar más detalles. Su pregunta tiene más que ver con los permisos, que etiquetó correctamente, y bienvenido a Exchange. Cuando se crea un usuario, recibe un directorio /homey 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.
eyoung100