是否有一个find命令显示当前目录中某个用户已读取权限的文件?

时间:2019-03-31 18:54:58

标签: shell find

我试图学习find并在尝试从用户可以打印的当前目录中查找文件(如果有)时卡住了(因此该用户具有读取权限)。该命令的作用差不多:

find / -type f -user whateverUser

1 个答案:

答案 0 :(得分:-2)

要使用grep执行此操作:

ls -o列出当前文件夹

ls -o . */**也会列出子文件夹,但对于每个文件,请显示完整的子路径

ls -o */** | grep -v '^d'以排除列表中的目录

要查看“您”可以读取哪些文件,可以grep表示所有者:

ls -o . */** | grep -v '^d' | grep " $LOGNAME "

一个微妙之处在于,您可以读取所有具有组组级别r权限或所有用户级别r权限的文件。

包含后者很容易:

ls -o . */** | grep -v '^d' | egrep "( $LOGNAME |^.......r..)"

要包含文件,您可以通过组权限访问,但要复杂一些。未经测试,所以在这里:

GROUP_GREP=$( groups | sed 's/ /|/g' )

ls -l */** | grep -v '^d' | egrep "( $LOGNAME |^.......r..|$GROUP_GREP)" 

现在,在文件名包含任何grep搜索词(例如用户名或组名)的情况下,您可能需要进行优化。