如何在 Linux 上查找只有 root 才具有读取权限的文件

如何在 Linux 上查找只有 root 才具有读取权限的文件

我想在某些文件夹中查找文件,例如 /home/mike/www/test只有 root 具有读取权限而其他用户没有读取权限的文件夹。

编辑:我有sudo和权限,但我想列出只有 root 具有读取权限但没有任何组或公共权限的所有文件?

答案1

find /home/mike/www/test -user root -perm +400 ! -perm +044 -print

-perm +400匹配至少设置了所有者读取模式的文件。-perm +044匹配设置了组读取或其他读取模式的文件,但!反转测试,因此这些文件将排除在结果之外。

更新: find(GNU findutils)的手册页显示:

-perm +mode 不再受支持(自 2005 年起已弃用)。请改用 -perm /mode。

更新后的命令应为:

find /home/mike/www/test -user root -perm /400 ! -perm /044 -print

答案2

您需要使用该find命令来确定哪些目录和文件只有 root 可以读取。类似下面的命令可能会满足您的要求:

sudo find / -uid 0 -perm 600

这将生成 UID 0(root)拥有且 root 仅具有读取权限的所有文件的列表。该列表将是绝对路径名。

您可以将输出重定向到文件,或将其传送到另一个程序。

获得man find受支持的选项的完整列表。

答案3

尝试使用sudo命令来提升您的权限。

sudo ls /home/mike/www/test

或者

sudo find /home/mike/www/test -name "foo" -print

如果您不能这样做,您将需要系统管理员将您的登录信息添加到文件中/etc/sudoers

相关内容