如何列出目录的内容但仅显示用户具有读取访问权限的目录和文件?
我已经解决了这个问题,但它只列出了拥有的文件:
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*