我真的用 chmod 搞砸了我的系统吗?

我真的用 chmod 搞砸了我的系统吗?

因此,我在 Linux 机器上搞乱了权限,并尝试更改权限,以便用户无法访问除其主目录中的文件夹之外的任何文件夹。我这样做了sudo chmod 0750 /home/Guest,它阻止了他们访问主目录中的其他文件夹,但不能访问根目录。所以我然后申请了sudo chmod 0750 /,现在我无法访问任何文件或执行任何命令。我回来了,我什至无法再通过 ssh 进行远程连接。

我搞砸了吗?

答案1

如果你真的只做chmod 0750 /而不做chmod -R 0750 /,那么可能不会造成任何伤害。只要这样做chmod 0755 /,你就会没事的。

如果你这样做了chmod -R 0750 /,那你就完蛋了。只需做一点工作,您也许就可以让事情恢复正常。

坦率地说,最好的选择是以 root 身份登录并执行chmod -R 0755 /。这很有可能会破坏系统上的安全模型,并且某些具有安全意识的软件可能会拒绝运行。此后您的系统可能会稳定,也可能不稳定。

不知道您到底使用的是哪种 Linux 方言,但许多变体都有某种“修复权限”工具来应对此类紧急情况。该工具将遍历已安装软件的数据库,并将每个文件恢复到安装时应有的权限。

如果您的系统是从 RPM 软件包安装的,这个答案显示您可以发出以使 rpm 重置权限的命令。

如果您无法重置权限,并且您的系统变得不稳定(或者您只是不信任它),那么您最好进行备份,然后重新安装系统。


关于您尝试对 Guest 执行的操作:

我猜您认为通过删除 /home/Guest 的权限,您以某种方式创建了用户无法通过的“墙”。不幸的是,权限不是这样工作的。只要文件及其包含的目录的权限允许,用户可以输入路径的任何文件都可以访问。

作为一般规则,如果没有一些高级 ACL 列表或类似的列表,您就不能像以前那样通过调整权限来将一个用户置于“沙盒”状态。

您真正想做的是将该用户放入“chroot”监狱,基本上该用户生活在系统中的虚拟系统中。设置起来并不太难,但也不是微不足道的。


您可以采取的另一种方法(实际上已经完成了一半)是列出拥有系统上所有文件的所有组的列表,并将除“Guest”之外的所有用户放入所有这些组中。然后从所有文件中删除“其他”访问权限

chmod -R o-rwx /

这将删除所有文件的“其他”访问权限,同时保留“所有者”和“组”权限。对你来说不幸的是,现在已经太晚了。

下一步是追踪所有因需要访问某个文件或另一个文件而损坏的软件。这可能需要很长时间,而且坦率地说,您的系统将永远不会再一样了。

接下来的步骤是找出由于这些权限更改而导致“Guest”出现问题的原因。首先,您需要恢复 /bin、/usr/bin、/lib、/usr/lib、/usr/local、/usr/share 中所有内容的权限,谁知道还有什么。 /etc、/var 等中可能有很多文件。

除非我正在构建嵌入式系统,并且有时间追踪所有这些问题,否则我不会采用这种方法。


相关内容