-perm /a+x, -perm /a=x, -perm -a=x 및 -perm -a+x와 find의 차이점은 무엇입니까?

-perm /a+x, -perm /a=x, -perm -a=x 및 -perm -a+x와 find의 차이점은 무엇입니까?

나는 이 모든 옵션에 대해 혼란스럽습니다. 이는 -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=xand 의 의미는 a+x동일합니다.


그러나 일반적으로 세 가지 옵션은 다음과 같습니다(+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을 의미(추가)합니다.

따라서 두 가지를 혼합하십시오.

  • 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. 사용자에 대한 실행 비트를 변경(설정)합니다. 즉,
.: . 하지만 사용자의 나머지 두 비트는 지워지고 실행 비트만 설정되어 사용자의 권한이 정확해집니다. A는 이러한 비트를 정확하게 또는 사용자를 위해 설정합니다. A도 같은 일을 할 것이다. u+xOR 100u=x1
chmod u+rwx file7rwx
chmod u=rwx file

찾기의 경우 비트가 변경되지 않으며 a=x동일한 a+x의미를 갖습니다.

관련 정보