폴더에 대한 액세스 권한이 있는 모든 사용자를 나열하는 Gnu/Linux 명령

폴더에 대한 액세스 권한이 있는 모든 사용자를 나열하는 Gnu/Linux 명령

나는 내 Gnu/Linux 시스템에서 특정 폴더에 액세스할 수 있는 모든 사용자를 찾으려고 합니다.

나는 노력했다

$ ls -ld */
dr-xr-xr-x.   2 root root     28672 Mar 20 21:33 bin/
dr-xr-xr-x.   4 root root      4096 Mar 16 16:02 boot/

시도해 보았지만 ls -ldd */폴더에 대해 한 줄만 나열되고 폴더가 생성된 사용자 이름이 표시됩니다.

하지만 폴더를 나열하고 싶고 각 폴더에는 해당 폴더에 액세스할 수 있는 모든 사용자 이름이 표시됩니다.

예를 들어:

$ 
dr-xr-xr-x.   2 user1 user1     28672 Mar 20 21:33 bin/
dr-xr-xr-x.   2 user2 user2      28672 Mar 20 21:33 bin/

이를 수행할 수 있는 방법이 있습니까?

답변1

빠르고 지저분하며 Mac에서만 테스트되었습니다(getent를 사용하지 않음). " dscl . -ls /Users" 를 테스트하기 위해 getent를 mac 명령으로 대체했습니다.

chkgrp=$1
for userid in $(getent passwd); do
   echo "$(id -Gn $userid)" | grep -wq $chkgrp
   [[ $? -eq 0 ]] && echo "$userid is in the $chkgrp group"
done

관련 정보