如何根据用户而不是文件/文件夹查看权限

如何根据用户而不是文件/文件夹查看权限

我有 samba 共享设置,并通过 setfacl 授予文件和文件夹的权限,然后复制整个命令

setfacl -m user:*username*:rwx /mnt/working/*MainFolder*/Engineering dept/OPERATED PROPERTIES/Texas/Martin County/Test_#1_Well_File.xls

保存在setperms.sh文件夹中。如果运行 setfacl 命令时没有保存到setperms.sh文件夹中,则不会记录授予某些用户的权限。

是否有 CLI 或 GUI 方式来查看用户有权访问哪些内容?不是通过 RWX 来查看文件和文件夹,ls -l还是通过getfacl <file or folders name>键入用户名并以树的形式查看该特定用户的整个目录访问权限?

答案1

我相信您正在寻找的查找属于特定用户的所有文件夹的命令是:

sudo find / -type d -uid $(id -u <username>) 2>/dev/null > filename.txt

让我们分解一下这个命令。

sudo表示以提升权限的用户身份运行该命令。

find是我们正在运行的实际命令,当然,我们正在寻找某些东西。运行man find将调出该命令的手册页,find显示更多可用选项。

/find是开始查找 的起点。find是一个递归应用程序,意味着它将查找所有文件夹。

-type d意味着我们希望它只返回目录。 -type f意味着文件。

-uid $(id -u <username>)我们希望从 的子 shell 命令中获取用户的 UID 号id -u <username>。将命令括在 中$()是子 shell,允许我们获取命令的输出。如果您单独运行该命令,id -u root它将返回 ,0因为这是 root 用户的 UID。因此,选项本身看起来就像-uid 0子 shell 命令将返回的那样。

2>/dev/null意味着抑制错误消息并将其发送到,/dev/null这意味着您将看不到错误的输出。

> filename.txt是我们想要将输出发送到的地方,而不是屏幕。也可以将其替换为,这| tee -a filename.txt将允许您在屏幕上看到输出,并创建filename.txt包含您在屏幕上看到的相同内容的。

希望这可以帮助!

相关内容