我意外地在我的主目录上运行了chmod 777 *
(没有参数)。-R
这会是个问题吗?那该如何解决呢?
答案1
如果你只是跑chmod 777 *
而不是邪恶的 chmod -R 777 *
,你实际上并没有对你的系统做太多的坏事。
但值得注意的是,每个顶级文件和目录都需要恢复到其原始权限。幸运的是,这是一个相对简单的操作。只需运行以下命令:
chmod a=r,u+w,a+X *
这将产生一些奇妙的效果,将所有文件夹权限重置为文件的 644(默认值)和文件夹的 755(默认值)。请参阅这个 Stack Overflow 上的答案以更详细地了解该命令的工作原理。
从那里开始,权限应该被重置为默认值。您可能还需要将其他一些权限改回以前的状态,但这应该(至少)可以消除损害。
值得注意的是,您还需要运行这两个命令:
chmod 700 .ssh
chmod 600 .Xauthority
这将防止因权限不匹配而导致与 X11 或 SSH 相关的任何身份验证错误。虽然这些并不重要,但谨慎一点总比后悔好。
老实说,chmod
在你的主目录上运行并不是绝对这是世界上最糟糕的事情。虽然它可能会导致 SSH 等出现问题Xauthority
,但它远非“灾难性”,因为您拥有主目录中的所有文件,并且(理想情况下)只有您才能访问它们。
鉴于此,它是绝对安全的(但不一定是最好的主意)只是为了偷懒,拒绝非您本人或非 root 用户访问您的整个主文件夹。您可以通过运行以下命令来执行此操作:
chmod 700 ~
实际上,这将只允许你的用户访问您的主文件夹。其他用户(除了root
-- 可以访问所有内容)将无法访问您的主文件夹,因此将里面的所有内容设置为全球可读/可写/可执行其实并不重要。
但是,如果你只是这样做然后就结束了,一些系统(再次)可能会抱怨,比如 Xauthority 和 SSH,所以要注意这一点。同样,一些有正当需要以不同的用户帐户访问你的主文件夹的服务也将不再能够访问。你可以有些通过高级权限和 ACL 解决这个问题,但这只是进入一个非常黑暗和多风的兔子洞。