列出用户有权访问的文件和目录

列出用户有权访问的文件和目录

如何列出目录的内容但仅显示用户具有读取访问权限的目录和文件?

我已经解决了这个问题,但它只列出了拥有的文件:

find /dir/to/search -user johnsmith1 -ls

我在想一个可能的替代方案是“sudo su johnsmith1”,然后 ls 或 find 但我不确定这是否可能。

答案1

列出用户的目录和文件(ubuntu在示例中)有读取权限到:

find -exec sudo -u ubuntu test -r '{}' \; -print

列出用户的目录和文件有写权限到:

find -exec sudo -u ubuntu test -w '{}' \; -print

列出用户的目录和文件有执行权限到:

find -exec sudo -u ubuntu test -x '{}' \; -print

列出用户的目录和文件具有读、写和执行权限到:

find -exec sudo -u ubuntu test -rwx '{}' \; -print

答案2

我找到了一个方法!

find -maxdepth 1 \( -type d -or -type f \) \( \( -user johnsmith1 -perm /u=r \) -o \( -group johnsmith1 -perm /g=r \) -o -perm /o=r \) -ls 

答案3

您可以通过将 ls 的输出传输到 grep 中来完成此操作,因此如果您只想查看您具有读取权限的目录或文件,则可以使用此命令

ls -l | grep [d,-]r--

如果你想查看你有读、写和执行权限的目录或文件,你可以使用这个命令

ls -l | grep [d,-]rwx

如果您想查看已阅读的目录或文件,以及其他权限,您可以使用此命令

ls -l | grep [d,-]r*

相关内容