디렉토리 구조 내에서 균등하지 않은 파일 권한을 어떻게 찾을 수 있습니까?

디렉토리 구조 내에서 균등하지 않은 파일 권한을 어떻게 찾을 수 있습니까?

디렉터리 구조 내에서 균일하지 않은 파일/디렉터리 권한을 찾으려면 어떻게 해야 합니까? 나는 다음과 유사한 find 명령을 사용하려고 몇 가지 시도를 했습니다.

find /bin ! \( -perm 777 -o -perm 776 -o -perm 775 -o -perm 774 -o -perm 773 -o -perm 772 -o -perm 771 -o -perm 770 -o -perm 760 -o -perm 750 -o -perm 740 -o -perm 730 -o -perm 720 -o -perm 710 -o -perm 700 -o -perm 600 -o -perm 500 -o -perm 400하지만 나머지 순열과-exec ls -lL {} \;

나는 또한 다음과 유사한 수동 작업을 수행해 왔습니다.

ls -lL /bin | grep -v ^-rwxr-xr-x | grep -v ^-rwx--x--x | grep -v ^-rwsr-xr-x | grep -v ^-r-xr-xr-x | grep -v ^-rwxr-xr-t하지만 나머지 순열을 완료하기 전에 명령줄이 부족해졌습니다.

두 방법 모두 유난히 어색해 보입니다. 더 좋고, 더 빠르고, 더 쉬운 방법이 있나요? 내가 사용하는 셸(sh)과 플랫폼(Irix 6.5.22)에서는 제한이 있습니다.

답변1

실행 파일을 찾고 계십니까?

find . -type f -perm /+x

그럼에도 불구하고, / 모드는 당신의 친구일 가능성이 높습니다... 맨 페이지는 다음과 같습니다:

   -perm /mode
          Any  of  the  permission  bits mode are set for the file.  Symbolic modes are accepted in this form.  You must specify `u', `g' or `o' if you use a symbolic mode.  See the
          EXAMPLES section for some illustrative examples.  If no permission bits in mode are set, this test matches any file (the idea here is to be consistent with  the  behaviour
          of -perm -000).

업데이트: 그렇군요. 홀수 숫자(실행 가능한 숫자)를 찾고 계시긴 했지만...

이것은 작동할 것입니다(여전히 find에서 세 번째 파마 매개변수를 사용하고 있습니다).

샘플 데이터:

$ ls
000  001  002  003  004  005  006  007  010  020  030  040  050  060  070  100  200  300  400  500  600  700

찾기 명령:

$ find . -type f \( -perm /u-x,g+x -o -perm /u-w,g+w -o -perm /u-r,g+r -o -perm /g-x,o+x -o -perm /g-w,o+w -o -perm /g-r,o+r -o -perm /u-x,o+x -o -perm /u-w,o+w -o -perm /u-r,o+r \) | sort
./001
./002
./003
./004
./005
./006
./007
./010
./020
./030
./040
./050
./060
./070

기본적으로 그룹에는 권한이 있지만 소유자에는 없는 파일, 세계에는 권한이 있지만 그룹에는 없는 파일, 세계에는 권한이 있지만 소유자에는 없는 파일을 나에게 제공하라는 뜻입니다.

참고: find에는 3x perm 매개변수가 있습니다.

  • 파마 모드
  • 파마 모드
  • 파마/모드

ps. 이 값어치는 잘 모르겠네요...

관련 정보