특정 ACL이 있는 파일/디렉터리를 찾는 방법

특정 ACL이 있는 파일/디렉터리를 찾는 방법

비슷한 일을하는 방법

find . -acl u:jim:rx
find . -acl u:*:r
find . -noacl u:jim:r

등.

find 명령이 이를 지원하지 않는다는 것을 알고 있지만 아이디어는 얻을 수 있습니다. 일부 특정 시나리오에서도 작동하는 스크립트가 있습니까?

참고 1:저는 특히 Debian에 관심이 있지만 모든 *nix OS에서 작동합니다.

노트 2: 이 질문은 실제 사례에 초점을 맞추고 있지만 실제로는 더 일반적입니다. ACL 관련 파일을 찾는 데 좋은 도구는 무엇입니까?

답변1

재귀 옵션이 포함된 getfacl도구를 사용하면 기본 ACL만 포함된 파일을 -R건너 -s뛰고 출력을 grep.

예를 들어 /dev디렉터리 내에서 다음 명령을 실행하면 다음과 같은 결과가 나타납니다.

$ getfacl -Rs . | awk -v RS= -v ORS='\n\n' '/\nuser:jimmij:rw-\n/'

# file: sg1
# owner: root
# group: cdrom
user::rw-
user:jimmij:rw-
group::rw-
mask::rw-
other::---

# file: sr0
# owner: root
# group: cdrom
user::rw-
user:jimmij:rw-
group::rw-
mask::rw-
other::---

(...)

파일 이름만 인쇄하려면:

getfacl -Rs . | awk -v RS= '/\nuser:jimmij:rw-\n/ {sub(/\n.*/, ""); sub(/^[^:]*: /, ""); print}'

관련 정보