私は私の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 */
フォルダに対して1行だけが一覧表示され、フォルダが作成されたユーザー名が表示されます。
ただし、フォルダを一覧表示したい場合、各フォルダにはそのフォルダにアクセスできるすべてのユーザー名が表示されます。
たとえば、
$
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