私のchmodが期待どおりに機能しないのはなぜですか? [コピー]

私のchmodが期待どおりに機能しないのはなぜですか? [コピー]

フォルダ権限を555に、ファイル権限を554に設定したいので、次のことを試しましたchmod

sudo chmod -R -v ug=rx,o=r,a+X mydir/

userこれにより、権限が権限groupに設定されると思いましたが、フォルダのみがその権限を受け取るため、ファイルはそのまま残ります。r-xothersr--a+Xr-xothersr--

x以前はどこにも権限がないことを確認するために、すべてのフォルダとファイルを444に設定しましたが、これは機能しません。すべてのファイルとフォルダを555に設定します。

このchmodコマンドが期待どおりに機能しないのはなぜですか?

答え1

わかりました、答えを見つけました。ウィキペディアで:

オプションを説明する場合X

...現在の権限に関係なく、ディレクトリに実行権限を適用し、すでに持っているファイルに実行権限を適用します。1 つ以上の実行権限ビットが設定されました。(所有者、グループ、その他)...

他のユーザーがすでにこの権限を持っている場合、誰かがすべてのユーザー(所有者、グループ、またはその他)に権限を適用したい理由を本当に理解していませんx。つまり、そうであればothers実行権限を与えますが、誰かがそれを見ました。ownerこれが最良の基本動作であり、それがどのように機能するかです。考えてみてください。

コードを次のように変更しました。

chmod -R ugo=r,a+X,ug+x

順序が重要なので、今や期待どおりに動作します。

関連情報