find 命令无法以非 root 用户身份找到(可读)文件

find 命令无法以非 root 用户身份找到(可读)文件

我试图找出为什么find找不到我的文件,即使它们是可读的。

/some我设置了以下目录

drwxr-xr-x  2 root root  4096 Sep 23 16:45 some

每个人都可以阅读。在目录中我有一个名为foundme.txt

-rw-r--r--  1 root student 157961 Sep 23 16:48 foundme.txt

现在,当我尝试以学生用户身份查找此文件时,除了权限错误之外,我没有得到任何结果。我的理解是,学生可以读取该目录和文件(而且确实如此)。

有人能解释一下为什么这会失败吗?

$ find / -name "foundme.txt"
find: ‘/root’: Permission denied

答案1

find命令从文件系统树的顶部开始/,并搜索名为 的文件foundme.txt。在到达该文件夹的过程中,/some它将包含/root您无权访问的许多其他目录(例如,下面的许多伪目录/proc)。

因此,find警告您它无法检查这些目录中的文件。

如果您离开find足够长的时间,它会发现您的文件为/some/foundme.txt.您还可以通过附加来丢弃错误/警告消息2>/dev/null您还可以通过附加到命令末尾来标准错误到位桶而不是将其显示在屏幕上)。

相关内容