フォルダへのアクセス権を持つすべてのユーザーを一覧表示する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 */フォルダに対して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

おすすめ記事