Solaris 10 update 10 (sparc、147440-25) でコピーを行っているときに奇妙なことに遭遇しました。
セットアップは次のとおりです(ルートとして実行):
# cd /tmp
# mkdir foo
# touch foo/thing1
# ln -s thing1 foo/thing2
# chown -hR joe:user foo
ディレクトリとリンクを見ると、すべてがユーザー「joe」によって所有されています。次に興味深い部分です。
# cp -rpP foo bar
ここでの cp のオプションは、再帰、許可と所有権の保持、およびリンクをたどる代わりにリンクに基づいて行動することです。しかし、これを行うと、リンクが正しいアクセス許可でコピーされますが、ディレクトリ自体、bar は root:root に設定されます。この動作には何らかの理由がありますか?
ディレクトリにリンクがある場合にのみ、このように動作します。ディレクトリにファイルのみが含まれている場合、すべての所有権が保持されます (-P が機能しないためだと思います)。