最近我执行了命令chmod -R 666 /
,而不是放置命令的目录,在我意识到我做了什么之后,我尽快按了 CTRL + Z,但是来自 root 用户的一些必要权限被否定了,这导致我的 VPS 在重启后无法工作。
我在 ovh.com 上托管我的 VPS(https://www.ovh.com/us/g920.rescue_mode),这应该可以让我修复我的权限问题,但是,我不知道该使用什么命令,因为在这方面我不是专业人士。
PS:这对我来说确实是必要的,我不想重置我的 VPS,因为它有一个完整的 TS3 服务器和 +10 个网站和数据库。
答案1
我讨厌那个家伙但没有真正的方法可以解决这个问题。
你实际上已经设定了全部的系统读取/写入,因此需要执行的事情不能被处决包括允许您设置权限的命令。
因此,要解决这个问题 - 你需要启动一个工作环境和修复每个文件的权限。这 似乎是正确的链接获取 VPS。
如果 SSH 可以正常工作,我首先要做的事情就是连接到服务器并通过 sftp 下载所有内容或 rsync(我曾在 Windows 上使用过 cyberduck 来做这样的事情)。我还提到了“- 执行备份或数据恢复”选项,我会检查。在做任何其他事情之前先备份。我还假设存在某种独立于您损坏系统的恢复环境。
现在我会尝试修复权限。这AU 问题建议 chmod 0755可以工作。尝试一下,测试一下,然后进行数据库转储。
在执行任何此类操作之前,请重新安装、恢复数据库转储和数据并备份。
答案2
据说这个问题确实没有合适的解决办法,但几乎在救援环境下是可行的。
与所有恢复操作一样,你应该尽量确保你有一个备份,或者现在做一个您可以访问的所有数据,以防您意外造成进一步的损害。
首先,如果您有最近的备份,最好从备份中恢复。即使您不想恢复文件(可能有些文件此后已更新),仅执行权限恢复也是一个可行的选择,而且相当安全 - 如果您此后没有安装任何新东西或更改任何配置,那么您将获得干净的恢复 + 此后的数据更改。
要从备份中执行此操作,您首先需要将备份恢复到临时目录,然后复制权限。
另一个选择是设置一个简单的基础系统(可能临时启动一个新的 VPS),从那里备份权限,然后将这些权限恢复到现有服务器。但是,这显然不会包括您从那时起安装的软件包的任何更改,也不会包括您所做的任何配置更改。这可能会让您回到可启动的系统,但你应该不是继续使用 - 尽快计划全面重建。
这一般方法备份、恢复或复制权限的方法是使用getfacl
和setfacl
命令。
首先,cd
进入受影响系统的根目录(/
在正在运行的系统中,或者在救援系统上安装驱动器的任何位置,或者要从中复制权限的临时目录),然后:
使用以下方式备份
getfacl -R . >permissions.facl
并使用
setfacl --restore=permissions.facl