나는 내 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