通过异常递归审查目录/文件的权限

通过异常递归审查目录/文件的权限

我只需要查看 & 中的文件以下我所在的目录没有正确的权限:可执行文件的权限为 700 或更少,不可执行文件的权限为 600 或更少。

我所在的目录及其下面的所有目录在 Word 文档中总共有 3,600 页。需要自动执行 Solaris 10 服务器的 shell 或命令行(首选)。感谢您的帮助。

答案1

我认为您需要显示至少为用户设置了 rw 位(即 600)的文件,因为 600 应该覆盖 700 rwx。尝试

查找 .-perm -u=rw

如果您想要相反的否定,在 c-shell 中您将需要逃避否定或在 ! 之前放置一个反斜杠。

查找 .\!-perm -u=rw

答案2

正如所述,这实际上是一个相当困难的问题。

你说的“可执行”一定是指权限以外的其他东西--x-------——可执行位是在文件模式下设置的。我想你的意思是:它是一个编译的图像或 shell 脚本或 java 字节码等。

要做到这一点,您必须使用 file 命令,该命令会解释文件开头的“魔法”:就像#!/bin/bash shell 脚本文件开头的魔法一样。这个命令的好处是 Solaris file 会给出很棒的答案 - 如果您是人类的话。它提供了许多不同的答案。

如果您是一个程序,祝您好运。常规的“数据”文件可能会显示“ASCII 文本”、“数据文件”等内容。在我看来,您需要做的是在尝试使用 find 来区分您想要的内容之前获取文件“类型”的唯一列表。您可以使用 find 和 awk 制作列表。

cd /path/to/start/directory
find . -type f -exec /usr/bin/file {} \; | awk '!arr[$0]++' > /tmp/mylist

/tmp/mylist 是这些“文件类型”的唯一列表 下一步 - 人类必须决定 /tmp/my 中的哪些条目符合可执行文件的定义,并将其他条目移至“常规”堆。我以前试过这个,所以留出一些时间来做这件事。

收到更多信息后,请在此处更新您的帖子。根据您收到的信息,有人可以告诉您下一步该怎么做。

相关内容