フォルダ権限のバイパス

フォルダ権限のバイパス

c「a」に制限されたアクセス権を与えたいと思います。
理由は合格したいからですa

a              <- drwx------
└ b            <- drwxr-xr-x
  └ c          <- drwxr-xr-x


ln -s ../a/b/c/some_files ../a/

私はすべてが必要であることを理解していますabc +xそしてc +rしかしそれは真実ではない。今aはdrwx--x--xです。

目標を達成するにはどうすればよいですか?ありがとうございます!

答え1

あなたの意図と目的に応じて、あなたが行うことはあなたの現在の権限と所有権の下では不可能です。これはバインドマウントを介して行うことができますが、シンボリックリンクは機能しません。

ご存知のように、所有者a(およびルート)以外は誰もこのアイテムを閲覧できません。つまり、他の誰もそのアイテムにアクセスできないため、bcもが読んで閲覧できることは重要ではありません。

できる唯一のことは、権限を変更することだけです。誰にでもアクセス権を与えたくない場合は、グループを作成し、アクセスしたい人だけを追加してグループに設定し、a権限をに変更します。755aa750

答え2

はい、可能です。ハードリンク到着するa/b/c/some_files。その後、o中間ディレクトリからすべての「」権限を完全に削除できます。

ところで、指定するのが一番安全です純粋なリンクを作成するときのパスです。

デモ:準備

# whoami
root

# mkdir -p /a/b/c
# touch /a/b/c/d
# chmod o= /a/
# chmod o= /a/b/
# chmod o= /a/b/c/
# ls -ld /a/
drwxr-x--- 3 root root 15 Dec 23 20:45 /a/

# ls -ld /a/b/
drwxr-x--- 3 root root 15 Dec 23 20:45 /a/b/

# ls -ld /a/b/c/
drwxr-x--- 2 root root 15 Dec 23 20:45 /a/b/c/

# ls -l /a/b/c/d
-rw-rw-rw- 1 root root 0 Dec 23 20:46 /a/b/c/d

# ln -s /a/b/c/d /softlink-to-d
# ls -l /softlink-to-d
lrwxrwxrwx 1 root root 8 Dec 23 20:47 /softlink-to-d -> /a/b/c/d

# ln    /a/b/c/d /hardlink-to-d
# ls -l /hardlink-to-d
-rw-rw-rw- 2 root root 0 Dec 23 21:09 /hardlink-to-d

デモ:証明する

# su - postgres -c 'touch /a/b/c/d'
touch: cannot touch ‘/a/b/c/d’: Permission denied

# su - postgres -c 'touch /softlink-to-d'
touch: cannot touch ‘/softlink-to-d’: Permission denied

# ls -l /a/b/c/d
-rw-rw-rw- 2 root root 0 Dec 23 20:46 /a/b/c/d
                       ### Note, mtime still unchanged...

# su - postgres -c 'touch /hardlink-to-d'

# ls -l /a/b/c/d
-rw-rw-rw- 2 root root 0 Dec 23 21:13 /a/b/c/d
                       ### ...finally, mtime changed.

関連情報