我对 Ubuntu 还很陌生。在使用家用电脑工作时,我无意中输入了以下命令:
sudo chmod -R o+x /home
我想知道开放获取是否危险其他用户,如果是的话,我该如何恢复?
答案1
这个问题起初询问
sudo chmod o+x /home
和 不是sudo chmod -R o+x /home
。本答案涉及那版本。当时重新询问,对于-R
命令的递归()版本随后,这个问题被编辑,并发布了更多答案。我留下这个答案的目的是希望它能对其他表演者有所帮助非- 的递归chmod
运算/home
。
命令chmod o+x /home
给出其他的—— 即不拥有/home
也不属于其“组所有者”的人—— 对 具有执行权限/home
。
对于文件夹来说,执行权限意味着一些特殊的东西——这意味着您可以进入该目录并尝试访问其中的文件。
/home
已o+x
默认设置。您运行的命令没有任何改变。/home
必须允许“其他人”访问里面的文件,因为它包含机器的所有人类用户的主目录,并且*这些用户都不是/home
的所有者或其组所有者的成员!
因此,你不必担心任何事情。此外,尝试“修复”这个问题将会破坏你的系统。如果你消除取消“其他”的可执行位/home
,则任何用户都无法访问自己的主目录。系统将变得不可用。您必须进入恢复模式或从实时 CD/DVD/USB 启动才能修复它。(修复它的方法是运行与之前类似的命令。只不过这次它会起作用。)
如果您已经尝试“修复”此问题并破坏了您的系统,并且您需要帮助修复它,我建议您发布一个新问题寻求帮助。毕竟,这与这个问题不同。
答案2
如果您递归运行该命令,由于sudo chmod -R o+x /home
您允许每个非所有者且非文件/文件夹所属组成员的用户“打开” 下的所有目录/home
。这被视为安全风险,因为它允许每个人获取文件和文件夹列表,这可能会泄露某些信息(或信息的存在)。
此外,如果您在其中有任何脚本/home
,它们将被其他人执行。根据情况,这可能是一种安全风险。如果任何脚本设置了 set uid 或 set gid 位,那么这肯定是一种安全风险,其强度取决于脚本内容。如果您还设置了 setuid 位和其他可写位 (o+w),则这是一个严重的安全风险,因为任何用户都可以像您一样执行任务。(特权升级)
如果你没有任何需要由“其他”执行的可执行文件/home
(这是一种常见情况,除非用户在 home 下安装了某些东西或以其他方式放置了一些可执行文件),你可以通过执行以下操作来恢复此操作sudo chmod -R o-x /home/*
请注意,/home/*
而不是/home
因为/home
需求o+x 使系统正常运行。
这将从每个文件和文件夹中删除“其他”的可执行位/home
。
答案3
+
添加,-
删除。尝试:
sudo chmod -R o-x /home/*
以递归方式删除x
每个子文件夹(但不删除/home/
其自身)的其他人的权限。
如果使用-X
(或+X
) 代替通常的小写x
,则仅影响:
- 目录(这样你就不会意外更改非目录文件的权限),和
x
为任何人(即用户、组和/或其他)设置权限的文件
也可以看看 ...手册页。