我试图找到我的 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)上进行了测试。我用mac命令替换了getent来测试“ dscl . -ls /Users
”
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