解決策 1:
これでうまくいくはずです:
find /home/user -type d -print0 | xargs -0 chmod 0775
find /home/user -type f -print0 | xargs -0 chmod 0664
解決策 2:
find は -exec:だけでトリックを実行できます:
find /home/user -type f -exec chmod 0664 {} \;
find /home/user -type d -exec chmod 0775 {} \;
find がエントリごとに chmod を生成しないようにするには:
find /home/user -type f -exec chmod 0664 {} +
find /home/user -type d -exec chmod 0775 {} +
(これは、ファイルごとに 1 つの chmod ではなく、すべてのファイルのリストをパラメーターとして使用して chmod を 1 回効果的に呼び出します)
解決策 3:
この答えはあなたの問題を解決しませんが、ファイルのアクセス許可が本来よりも少ないという同様の問題に役立つかもしれません。
# chmod -R . u=rwX,g=rX,o=rX
魔法は、x ではなく X パーミッションです。 chmod のマンページでは、次のように説明されています。
<ブロック引用>ファイルがディレクトリであるか、すでに一部のユーザーの実行権限を持っている場合にのみ実行/検索します
あなたのファイルには実行権限があるため、これはあなたのケースには適していません.2番目のテストと一致します.