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


8

[ 免責事項:この質問には悪意はありません。学校のプロジェクトのln -sコマンドを理解しようとしています]

たとえば、ホームフォルダのあるファイルシステムがあるとします/home/anna/home/bobアクセスできないフォルダ、アクセスできないファイル、foo.txt

ln -s /home/bob/foo.txtホームフォルダーで正常に実行できますか?可能であれば、アクセスできないリンクが(と同じ権限でfoo.txt)生成されると想定することは正しいですか?

DIDにfoo.txtへのアクセスではなく、に対する読み取り権限がある場合はどうなり/home/bobますか?

アクセスできた/home/bobが読めなかった逆の場合はfoo.txtどうですか?


4
存在しないものを含め、事実上すべてのものへのシンボリックリンクを作成できます。
muru 2017

1
技術的には、symlinkにはそれ自体のアクセス権はなく、ls通常はと表示されるlrwxrwxrwxため、llinkのアクセス権について話すのは少し間違っています。
Henrikは

回答:


9

はい、任意の場所へのシンボリックリンクを作成できます。

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

DIDにfoo.txtへのアクセスではなく、に対する読み取り権限がある場合はどうなり/home/bobますか?

親ディレクトリに対する権限がない場合、含まれているファイルにアクセスできません。したがって、シンボリックリンクを使用しても、それにアクセスすることはできません。シンボリックリンクを作成しても、権限には影響しません。

アクセスできた/home/bobが読めなかった逆の場合はfoo.txtどうですか?

ここでも、シンボリックリンクを作成できますが、ファイルにはアクセスできません。


2
@ 4o2これは正しいので、ここで詳しく説明するためにコメントしています。あなたの質問は、あなたが適切にタグ付けしたアクセス許可と関係があり、Exchangeへようこそ。ユーザーが作成されると、ユーザーはディレクトリを受け取り、/homeユーザー名と同じ名前のグループに入れられます。つまり、ユーザーbobはグループbobに追加され、他のユーザーに追加されて、ユーザーが他のファイルを読み取れないようにします。昔は、すべてのユーザーがグループユーザーに属していたため、あなたが言及した悪意がありました。アンナがボブのファイルを見るには、ボブは彼女をグループボブに追加する必要があります。
eyoung100 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.