私はこれらすべてのオプションについて混乱しています。これは、ファイルがすべてのユーザー-perm /a+x
に対して実行権限を持つことを意味し、ファイルがすべてのユーザーに対して実行-perm -a+x
権限を持つ必要があることを意味しますが、a+x
違いは何ですかa=x
?
[user@j6727961 ~]$ find -name 'perm*' -perm /a+x
./perm
./perm1
[user@j6727961 ~]$ find -name 'perm*' -perm /a=x
./perm
./perm1
[user@j6727961 ~]$ ll
total 57280
drwxrwxr-x. 2 user user 54 Dec 9 20:06 exercises
-rwxrwxrwx. 1 user user 0 Dec 10 21:08 perm
----rwxrwx. 1 user user 0 Dec 10 21:09 perm1
[user@j6727961 ~]$ find -name 'perm*' -perm -a=x
./perm
[user@j6727961 ~]$ find -name 'perm*' -perm -a+x
./perm
答え1
findで使用するためにはビットは変更されず、a=x
andの意味はa+x
同じです。
ただし、通常、3つのオプションは次のとおりです(+modeは廃止されました)。
mode # exactly
-mode # ALL bits SET
/mode # ANY bit SET
これはmode 760
、権限のあるファイルが検索されることを意味します。正確に 760
。
A -mode 220
(バイナリ010 010 000または-w--w----)は、所有者とグループ(すべて)書き込みビットが設定され、他のビットが設定されているすべてのファイルを検索します。これは重要ではありません。
例: 630 ( 110 011 000 または rw- -rx ---)。
a は/mode 220
すべてのビット設定と一致します。
実際には220,230,360,270と同じです。
すべて(バイナリ)x1x x1x xxx。ここで、xは「無関係」を意味します。
ビットセットを表現する別の方法は次のとおりです。
a (for all)
u (for user)
g (for group) and
o (for others)
Anは、a+r
ファイルが持つことができる権限(追加またはバイナリOR)r - r - r -を設定することと同じであることを意味します。または a+x は --x--x--x または 001001001 または 111 を意味 (追加) します。
したがって、2つを混ぜてください。
- perm a+x ===> perm 111 ===>権限111のみのファイル
- perm -a+x ===> perm -111 ===> u(ser) g(roup) によって実行されるそしてその他)
- perm /a+x ===> perm /111 ===> u(ser) g(roup) によって実行されるまたは その他)
a=x
または、このコマンドにa+x
固有の意味がありますchmod
。ユーザーの実行ビットを変更(設定)します。つまり、
.: 。ただし、ユーザーの残りの2つのビットはクリアされ、実行ビットのみが設定され、ユーザーの権限が正確になります。 A は、これらのビットを正確にまたはユーザーのために設定します。 Aも同じことをするだろう。 u+x
OR 100
u=x
1
chmod u+rwx file
7
rwx
chmod u=rwx file
検索の場合、ビットは変更されず、a=x
同じa+x
意味を持ちます。