我想在某些文件夹中查找文件,例如 /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
。