
同じターゲットディレクトリを指す2つのシンボリックリンクがあります。ls
そのうちの1つ(間違ったもの)はユーザー1001に属し、もう1つはrootに属していることを示しています。 1001(ルートを含む)を除くすべてのユーザーは、良いシンボリックリンクを使用してディレクトリを一覧表示できますが、悪いシンボリックリンクは使用できません。1001人のユーザーがこれらのいずれかを使用でき、すべてが機能します。
# ls -ldn /opt
lrwxrwxrwx 1 0 0 12 Sep 27 12:54 good -> dir
lrwxrwxrwx 1 1001 100 12 Nov 7 2016 bad -> dir
drwxrwxr-x 9 1001 100 11 Jun 3 2016 dir
...
# id
uid=0(root) gid=0(root) groups=0(root)
# ls /opt/good
(directory entries...)
# ls /opt/bad
ls: cannot access /opt/bad: Permission denied
原因は何ですか?私の考えでは、Linuxではシンボリックリンク自体の権限が重要ではないということです。どうすれば解決できますか?この問題があるすべてのシンボリックリンクをどのように見つけることができますか?
私はカーネル4.4.76とZFS 0.6.5.9がインストールされているDebian Linuxシステムを使用しています。これはカーネルおよび/またはZFSのバグですか?シンボリックリンク自体の権限を読み取る破損したSolarisコードがZFSに残っている可能性がありますか?
答え1
Solarisはシンボリックリンク権限に興味がないため、ZFSコードが原因である可能性があると思います。
とにかく、次の回避策を試してみてください。
chown -h 0:0 /opt/bad