我发现这sudo -u <user> test
可能有效,但我的系统上没有 sudo 命令。
例如
/a d......--x
/a/aa d......--x YES
/b d......---
/b/bb d......--x NO
当我使用root用户时,无法使用test
命令确定“其他”的权限。我发现的相关问题:测试用户文件的有效权限
我发现这sudo -u <user> test
可能有效,但我的系统上没有 sudo 命令。
例如
/a d......--x
/a/aa d......--x YES
/b d......---
/b/bb d......--x NO
当我使用root用户时,无法使用test
命令确定“其他”的权限。我发现的相关问题:测试用户文件的有效权限
操作方法如下:
! -perm -o=x -prune
- 不要进入没有“其他”执行位的目录。-print
如果末尾没有显式的内容,find
则也会打印修剪后的目录(不会下降的目录,即那些没有“其他”执行位的目录)。显式-print
确保仅打印在右侧(修剪之后)找到的目录。现在,这个命令将是最明显的一个。然而,有一些方法可以通过执行一些逻辑缩减来使其更短。
首先,如果你想一想,你不需要第二个
-perm -o=x
;如果第一个! -perm -o=x
计算结果为“True”(意味着文件夹上没有执行位),它甚至不会到达右侧-o
(因为从逻辑上讲,在检查后整个表达式将被计算为“True”)第一个条件)。这意味着只有当文件上的其他部分有执行位时,才会评估括号内的整个部分。最重要的是,
-perm -o=x
括号内的部分是多余的,可以删除。-print
现在,正如我所说,我们最后需要的原因是因为-prune
操作返回“True”,并且我们不想打印那些修剪过的目录。但是,我们可以通过在 ; 之前添加来反转“True ”!
。-prune
这些文件夹仍将被修剪,但结果将为“False”,因此它们无论如何都不会被打印。然后我们就不再需要
-print
最后的了。正如我所说,您可以删除括号。这就是你最终得到的:
最终缩短的命令: