我有 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
包含您在屏幕上看到的相同内容的。
希望这可以帮助!