意外运行命令
sudo chmod -R o+x /home
在我的 Ubuntu 12.10 上。
现在我该怎么办?这危险吗?我没有分区备份,所以我认为这个命令是不可逆的。所以我要因为这个错误重新安装整个系统吗?
答案1
解决此问题的最佳方法取决于系统设置的细节。幸运的是,您可能知道这些细节。
在文件上,+x
意味着它们可以像程序一样运行。(实际上,它授予尝试. 如果它们不是实际的可执行二进制文件或脚本文件一条哈希线,这仍然会失败。)
在目录(即文件夹)上,+x
允许意思是别的。文件夹的可执行权限赋予进入文件夹及其子文件夹的能力(尽管其子文件夹可能没有执行此操作所需的权限),并尝试访问文件夹内的文件(这些文件可能具有也可能不具有允许此操作成功的权限)。
这是o+x
。o
代表其他。它控制不拥有该文件或文件夹的用户以及不是该文件或文件夹“组所有者”成员的用户的权限。
如果您当前不使用权限与其他本地用户共享文件
如果用户(例如,你)不需要与其他用户共享文件,那么可以安全地删除其他,只要你这样做主文件夹内的任何位置. 您的主文件夹是/home/username
username
替换为您的实际用户名。/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
,然后关闭常规文件的可执行标志(如果您对此感到困扰)。
如果系统是新的,我可能会考虑重新安装,以使其变得干净整洁:)