Linux命令行-列出所有不可访问的文件和文件夹

Linux命令行-列出所有不可访问的文件和文件夹,linux,command-line,find,Linux,Command Line,Find,我正在尝试列出我没有读取和修改权限的所有文件和文件夹 谢谢使用“查找”列出所有文件 find searchpath find searchpath 2>&1 >/dev/null | awk '{ print substr($2,2,length($2)-3) }' 忽略输出,因为只有错误是您感兴趣的 find searchpath >/dev/null 使用awk可以获得所有文件的良好列表 find searchpath find searchpath 2&g

我正在尝试列出我没有读取和修改权限的所有文件和文件夹


谢谢

使用“查找”列出所有文件

find searchpath
find searchpath 2>&1 >/dev/null | awk '{ print substr($2,2,length($2)-3) }'
忽略输出,因为只有错误是您感兴趣的

find searchpath >/dev/null
使用awk可以获得所有文件的良好列表

find searchpath
find searchpath 2>&1 >/dev/null | awk '{ print substr($2,2,length($2)-3) }'

请注意,这假设所有文件的名称中都没有空格,要处理这个问题,只需更改awk sctipt。

文件有三种权限。一个用于文件所有者,一个用于文件所属的组成员,另一个用于所有人。使用“查找”功能可以找到所有人都无法读取/写入、您的某个组无法读取/写入以及您的用户无法读取/写入的文件,如下所示:

$ find / '( -not -perm -o+w,o+r ) -and ( -not -group <groupname> -perm -g+w,g+r ) -and ( -not -user <username> -perm -u+w,u+r )'
$find/'(-not-perm-o+w,o+r)-和(-not-group-perm-g+w,g+r)-和(-not-user-perm-u+w,u+r)'
如果您必须检查更多组,您可以展开第二个括号内的术语:

$ find / '( -not -perm -o+w,o+r ) -and ( -not -group <groupname> -perm -g+w,g+r -not -group <group2> ) -and ( -not -user <username> -perm -u+w,u+r )'
$find/'(-not-perm-o+w,o+r)-和(-not-group-perm-g+w,g+r-not-group)-和(-not-user-perm-u+w,u+r)'
OP需要他无法读取的所有文件和目录。这种方法只会给他目录。