这个“查找”命令有什么作用?

这个“查找”命令有什么作用?

我是 Linux 的新手,在使用时我运行过以下命令/root

find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \

我本想在特定文件夹上运行该程序,但我没有注意到我在 上/root

这会影响机器上的每个文件吗?

答案1

假设您有足够的权限,命令将从运行目录开始递归地find将所有文件的权限位更改为660并将所有目录的权限位更改为 。770

由于您处于/rootroot的主目录)中,并且假设您以 身份运行,root且所有者user:grouproot:root,那么这应该不是一个大问题,只是一些特定程序可能会抱怨某些特定文件或目录,例如在进行基于密钥的身份验证时可能会抱怨目录和文件ssh的权限,您需要手动修复这些问题。/root/.ssh/root/.ssh/authorized_keys

另外,不要盲目运行任何在野外发现的命令,您应该首先询问该命令的作用,然后再运行它。

答案2

该命令会从您运行命令的目录中找到所有目录并修改其权限。然后,它会对文件执行相同的操作。在这种情况下,该命令会更改目录的权限,以便您拥有完全访问权限,但其他用户将无权访问。如果您是系统的唯一用户,那么这应该无关紧要。然后,该命令会更改 /root 中文件的权限,以仅允许读写访问,但不允许执行。您可能会发现运行程序和脚本时会出现一些问题,但不会产生重大影响。其他用户也将无权访问 /root 内的文件。

如果您发现无法从内部运行的脚本或程序,/root您可以简单地在文件上运行此命令:

sudo chmod 775 filename

其中,filename替换为您尝试运行的文件的名称

如果系统还有其他用户,并且您希望每个人都能读取目录和文件,则可能值得再次运行该命令,但稍微更改为:

find . -type d -exec chmod 775 {} \; && find . -type f -exec chmod 664 {} \;

答案3

命令后的第一个点是find搜索树的根。因此它会影响运行该命令的文件夹的文件以及其下方的整个树。

相关内容