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

[ Descargo de responsabilidad : no hay intención maliciosa para esta pregunta, estoy tratando de entender el command ln -s para un proyecto esqueuer]

Digamos que tengo un sistema de files con mi carpeta de inicio, /home/anna . /home/bob es una carpeta a la que no puedo acceder, con un file al que no puedo acceder, foo.txt

¿Puedo ejecutar ln -s /home/bob/foo.txt en mi carpeta de inicio? ¿Es correcto suponer que, si puedo, generará un enlace al que no puedo acceder (con los mismos permissions que foo.txt )?

¿Qué foo.txt si foo.txt tengo privilegios de lectura en foo.txt , simplemente no foo.txt acceso a /home/bob ?

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

Sí, puedes crear un enlace simbólico a cualquier location.

¿Puedo ejecutar ln -s /home/bob/foo.txt en mi carpeta de inicio? ¿Es correcto suponer que, si puedo, generará un enlace al que no puedo acceder (con los mismos permissions que foo.txt )?

Correcto. Se aplican las restricciones de acceso del file de destino. Si crea un enlace simbólico a un recurso restringido, simplemente no podrá acceder a él. Ni siquiera es necesario que el file 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é foo.txt si foo.txt tengo privilegios de lectura en foo.txt , simplemente no foo.txt acceso a /home/bob ?

Si no tiene permissions en el directory principal, no puede acceder al file contenido . Entonces, con un enlace simbólico, aún no podrá acceder a él. Crear un enlace simbólico no afecta los permissions.

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

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