8進値で+X表記権限を表すことは可能ですか? chmod(1) のマニュアルページは次のように言います:
ファイルがディレクトリである場合、またはすでに一部のユーザーに対する実行権限がある場合にのみ実行/検索
つまり、chmod -R g+X
ユーザ、グループ、または他のユーザに対して実行ビットが設定されている場合にのみ、グループ実行権限が追加される。もちろん、findを使ってこれを行うこともできます。
find . -perm /ugo=x -exec chmod g+x {} \;
ただし、8進モードを使用せずに同じことを行う方法は不明です。探すまたはテストまず、ファイルの権限を確認してください。これは可能ですか、それともシンボルと8進数の権限が重ならない領域がありますか?
答え1
短い話:不可能です。
長いストーリー:8進数の権限はステートフルです。この[+-][rwxXst]
記号は、operations
状態変更の最終結果を示します。ちなみにそれ=[rwxXst]
じゃないセットそれはGilesが8進モードと呼ばれるのと同じです。そのうちの1つX
は唯一の条件付き演算であり、残りは無条件の演算です。
ファイルに8進数の権限がある場合は、chmod
最終的な権限を提供します。状態逐語的なライセンスビット。ジョブを使用するときに必要なものを選択します。完璧許可ビットに。
あなたの質問は、すべての平方根を表すことができる数字が1つあるかどうかを尋ねるのと同じです。答えは明らかに「いいえ」です:すべての平方根生産する数字(現象:想像的/非合理的かもしれませんが)、開始はありません状態(番号)、どちらがわかりません。
答え2
8進モードは絶対的な変化しか表現できないため、シンボルモードは8進モードよりも表現力に優れています。相対的な変更は、+X
すべての新しいビットを指定しないモード(つまりg+x
、a+rwx
setuid / setgidビットを削除しないモード)も8進モードで表示できないことを意味します。
=
代わりに、すべての8進数パターンは通常、4750
= u+rwxs,g=rx,o-rwxt
(またはu=rwxs,g=rx,o=
他のいくつかの組み合わせ)などを使用してシンボルパターンとして表示できます。