그룹 쓰기 전용 권한이 있는 모든 파일 찾기

그룹 쓰기 전용 권한이 있는 모든 파일 찾기

다음 예제 디렉터리에서

$ ls -l
total 0
-rw-r--r--  1 user  testgroup  0 12 feb 12:00 file1
-rw-rw-r--  1 user  testgroup  0 12 feb 12:00 file2
-rw--w-r--  1 user  testgroup  0 12 feb 12:00 file3
-rw-r--r--  1 user  testgroup  0 12 feb 12:00 file4
-rw-rwxr--  1 user  testgroup  0 12 feb 12:00 file5

find모든 파일을 원해요그룹권한은 바로 -w-그것 입니다 2(쓰기 권한만 해당).

나는 사용하고있다

$ bash --version
GNU bash, versione 4.4.23(1)-release (amd64-portbld-freebsd12.0)

FreeBSD 12에서. GNU가 아닙니다 find.

내 시도는

$ find . -perm -g+w
./file2
./file3
./file5

그러나 이것은 다음과 같은 모든 파일을 반환합니다.적어도그룹 쓰기 권한, 해당 그룹만 허용하는 파일을 나열하고 싶습니다.쓰다. 어떻게 해야 하나요?

답변1

다른 권한 비트가 설정된 파일을 제외하는 조건을 더 추가할 수 있습니다.

find . -perm -g+w ! -perm -g+r ! -perm -g+x

또는 (Steeldriver 의견에서 제안한대로)

find . -perm -g+w ! -perm /g+rx

예:

$ ls -l file*
-rw-r--r-- 1 bodo bodo 0 Feb 12 12:50 file1
-rw-rw-r-- 1 bodo bodo 0 Feb 12 12:50 file2
-rw--w-r-- 1 bodo bodo 0 Feb 12 12:50 file3
-rw--wxr-- 1 bodo bodo 0 Feb 12 12:50 file4
-rw-rwxr-- 1 bodo bodo 0 Feb 12 12:50 file5
$ find . -perm -g+w ! -perm -g+r ! -perm -g+x
./file3
$
$ find . -perm -g+w ! -perm /g+rx
./file3
$

관련 정보