无意中跑了命令,现在不知道该怎么办

无意中跑了命令

sudo chmod -R o+x /home 

在我的Ubuntu 12.10上。

现在我该怎么办? 那危险吗? 我没有分区备份,所以我认为这个命令是不可逆的。 所以我因为这个错误而重新安装整个系统?

解决此问题的最佳方法取决于系统设置的详细信息。 幸运的是,你可能知道这些细节。

在文件上, +x表示它们可以像程序一样运行。 (实际上,它授予了尝试的权限。如果它们不是实际的可执行二进制文件或带有hashbang行的脚本文件, 那么它仍然会失败。)

在目录(即文件夹)上, +x 权限表示其他内容。 文件夹的可执行权限赋予进入文件夹及其子文件夹的能力(尽管其子文件夹可能没有必要的权限),并尝试访问文件夹内的文件(文件可能有也可能没有允许的权限这要成功)。

这是o+xo代表其他 。 它控制不拥有文件或文件夹的用户的权限,以及不是文件或文件夹的“组所有者”成员的权限。

如果您当前不使用权限与其他本地用户共享文件

如果用户(比方说你)不需要与其他用户共享文件,那么只要你在主文件夹中的任何地方都可以使用,就可以安全地删除其他用户的可执行权限。 您的主文件夹是/home/ username ,其中username替换为您的实际用户名。 /home本身不是您的主文件夹,而是包含所有主文件夹的文件夹。 由于/home本身实际上并不是计算机的任何人类用户所拥有, 因此必须从/home本身删除其他人的可执行权限。

所以,你可以运行:

 cd ~ 

~代表你的主文件夹。 (shell将其解释为,您可以完全键入。)

然后你可以运行:

 chmod -R ox .* * 

或者,如果您想阻止其他人将目录更改为您的主文件夹本身:

 chmod -R ox ~ 

我故意没写过sudo 。 您仍然拥有主文件夹中的文件,因此您不需要sudo ,将其关闭将有助于避免意外更改错误文件和文件夹的权限。 (特别是/homeroot拥有,因此通过不使用sudo ,您确保不会意外更改/home的权限并使您的系统无法使用。)

如果您当前使用权限与其他本地用户共享文件

如果您有一些文件夹与机器上的其他用户共享(如果您这样做,那么您几乎肯定知道这样做),那么您可以使用上述方法,然后在这些特定文件夹上手动添加可执行权限。 但是如果你有太多的东西要实用,那么特别是如果你不担心其他用户访问他们不应该做的事情,你可能只想从文件中拿走可执行权限,而不是从文件夹中删除。 执行此操作后,您可以选择性地从某些文件夹中获取可执行权限。

要从您自己用户的主文件夹中的所有文件中删除其他文件的可执行权限,而不是目录,请运行:

 find ~ -type f -exec chmod ox \{\} \; 

(您将注意到这与SEngstrom的建议类似。请参阅man find以获取有关其工作原理的信息。)

您刚刚将所有用户文件的文件权限更改为可执行文件(以及可搜索的目录,这是默认设置) – 可能不是您想要的,但也可能不是世界末日 – 特别是如果您是机器上的唯一用户。

有人认为你可以做的是对文档目录进行find ,并将常规文件的可执行标志关闭,如果它困扰你那里。

如果系统是新鲜的,我可能会考虑重新安装,只是为了让它变得干净整洁:)