フォルダ権限を555に、ファイル権限を554に設定したいので、次のことを試しましたchmod
。
sudo chmod -R -v ug=rx,o=r,a+X mydir/
user
これにより、権限が権限group
に設定されると思いましたが、フォルダのみがその権限を受け取るため、ファイルはそのまま残ります。r-x
others
r--
a+X
r-x
others
r--
x
以前はどこにも権限がないことを確認するために、すべてのフォルダとファイルを444に設定しましたが、これは機能しません。すべてのファイルとフォルダを555に設定します。
このchmod
コマンドが期待どおりに機能しないのはなぜですか?
答え1
わかりました、答えを見つけました。ウィキペディアで:
オプションを説明する場合X
:
...現在の権限に関係なく、ディレクトリに実行権限を適用し、すでに持っているファイルに実行権限を適用します。1 つ以上の実行権限ビットが設定されました。(所有者、グループ、その他)...
他のユーザーがすでにこの権限を持っている場合、誰かがすべてのユーザー(所有者、グループ、またはその他)に権限を適用したい理由を本当に理解していませんx
。つまり、そうであればothers
実行権限を与えますが、誰かがそれを見ました。owner
これが最良の基本動作であり、それがどのように機能するかです。考えてみてください。
コードを次のように変更しました。
chmod -R ugo=r,a+X,ug+x
順序が重要なので、今や期待どおりに動作します。