[免責聲明:這個問題沒有惡意,我正在嘗試理解學校專案的 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
?
同樣,您可以創建指向它的符號鏈接,但不能訪問該文件。