[免责声明:这个问题没有恶意,我正在尝试理解学校项目的 ln -s 命令]
假设我有一个包含我的主文件夹的文件系统,/home/anna
./home/bob
是一个我无法访问的文件夹,其中有一个我无法访问的文件,foo.txt
我可以ln -s /home/bob/foo.txt
在我的主文件夹中成功运行吗?假设如果可以的话,它将产生一个我无法访问的链接(具有与 相同的权限foo.txt
)是否正确?
如果我确实具有 的读取权限foo.txt
,但无法访问,该怎么办/home/bob
?
那么相反的情况呢,我可以访问/home/bob
但不能读取foo.txt
?
答案1
是的,您可以创建一个符号链接任何地点。
我可以
ln -s /home/bob/foo.txt
在我的主文件夹中成功运行吗?假设如果可以的话,它将产生一个我无法访问的链接(具有与 相同的权限foo.txt
)是否正确?
正确的。目标文件的访问限制适用。如果您创建指向受限资源的符号链接,您将无法访问它。甚至不需要目标文件实际存在。
演示:
$ 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
如果我确实具有 的读取权限
foo.txt
,但无法访问,该怎么办/home/bob
?
如果您没有父目录的权限,您无法访问包含的文件。因此,使用符号链接您仍然无法访问它。创建符号链接不会影响权限。
那么相反的情况呢,我可以访问
/home/bob
但不能读取foo.txt
?
同样,您可以创建指向它的符号链接,但不能访问该文件。