意外运行了命令,现在不知道该怎么办

意外运行了命令,现在不知道该怎么办

意外运行命令

sudo chmod -R o+x /home

在我的 Ubuntu 12.10 上。

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

答案1

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

在文件上,+x意味着它们可以像程序一样运行。(实际上,它授予尝试. 如果它们不是实际的可执行二进制文件或脚本文件一条哈希线,这仍然会失败。)

在目录(即文件夹)上,+x 允许意思是别的。文件夹的可执行权限赋予进入文件夹及其子文件夹的能力(尽管其子文件夹可能没有执行此操作所需的权限),并尝试访问文件夹内的文件(这些文件可能具有也可能不具有允许此操作成功的权限)。

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

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

如果用户(例如,你)不需要与其他用户共享文件,那么可以安全地删除其他,只要你这样做主文件夹内的任何位置. 您的主文件夹是/home/usernameusername替换为您的实际用户名。/home它本身不是您的主文件夹,而是包含所有主文件夹。由于/home它本身实际上不属于计算机的任何人类用户,必须具有可执行权限其他无法从其自身中移除/home

因此,你可以运行:

cd ~

~代表您的主文件夹。(shell 会将其解释为该文件夹,您可以直接输入该文件夹。)

然后你可以运行:

chmod -R o-x .* *

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

chmod -R o-x ~

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

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

如果您确实有一些文件夹与计算机上的其他用户共享(如果有,那么您几乎肯定知道您有),那么您可以使用上述方法,然后手动添加这些特定文件夹的可执行权限。但是,如果您有太多文件夹,这种方法不切实际,那么特别是如果您不担心其他用户访问他们不应该访问的内容,您可能希望只是取消可执行权限文件,而不是来自文件夹。当然,完成此操作后,您就可以有选择地从某些文件夹中删除可执行权限。

取消可执行权限其他从所有文件在您自己的用户的主文件夹(但不是目录)中,运行:

find ~ -type f -exec chmod o-x \{\} \;

(你会注意到,这类似于SEngstrom 的建议。 看man find了解其工作原理。

答案2

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

您可以做的一件事就是在文档目录上执行一项操作find,然后关闭常规文件的可执行标志(如果您对此感到困扰)。

如果系统是新的,我可能会考虑重新安装,以使其变得干净整洁:)

相关内容