我是 Linux 的新手,在使用时我运行过以下命令/root
:
find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \
我本想在特定文件夹上运行该程序,但我没有注意到我在 上/root
。
这会影响机器上的每个文件吗?
答案1
假设您有足够的权限,命令将从运行目录开始递归地find
将所有文件的权限位更改为660
并将所有目录的权限位更改为 。770
由于您处于/root
(root
的主目录)中,并且假设您以 身份运行,root
且所有者user:group
是root: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
搜索树的根。因此它会影响运行该命令的文件夹的文件以及其下方的整个树。