アクセスできないファイルへのシンボリックリンクを作成できますか?

アクセスできないファイルへのシンボリックリンクを作成できますか?

[免責事項: この質問に悪意はありません。学校のプロジェクトで 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?

繰り返しになりますが、シンボリックリンクを作成することはできますが、ファイルにアクセスすることはできません。

関連情報