无法使用 sudo - ubuntu 20.04

无法使用 sudo - ubuntu 20.04

一个经典错误

由于错误,我们sudo chown -R ubuntu:www-data /在 ubuntu 20.04 AWS EC2 服务器上执行了此操作。虽然有很多帖子表明我无法挽救机器并必须重新安装一台新机器 - 但我想复制在此服务器上运行的 postgres。目前我们无法使用 sudo 执行任何命令。因此我们无法启动 postgres 或通过 phppgadmin 登录。

我们已完成以下工作:

  1. 停止实例
  2. 分离卷
  3. 创建了一个新的实例
  4. 附加卷
  5. 挂载卷
  6. 在新实例中更改为 root
  7. 做了chown -R root:root /mnt/rescue(将其改为root:ubuntu,,ubuntu:ubuntu等等)
  8. 做了chmod -R 4755 /mnt/rescue(也做了0755ug-s等)
  9. 退出根目录
  10. umount /mnt/rescue
  11. 关闭救援实例
  12. 分离卷
  13. 将卷连接到损坏的机器。机器指示新所有者 - 但 sudo 不起作用。
  14. 我们尝试创建一个新实例 - 附加这个更正的卷,更新 /etc/fstab - 重新启动实例。我们将卷与机器合并。重新启动后 - 仍然是同样的问题 - 无法使用 sudo。

我们当然可以重新创建机器或进行备份和恢复。但是,一些关键任务数据驻留在 postgres 中。我如何 sudo 或从死机的 postgres 中检索文件。

我们经常会遇到这样的错误:

sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set

但是,当我在 /usr 或 /usr/bin 内部的任何地方执行 ls -l 时,所有文件的全部所有权仍属于 ubuntu:ubuntu 或我们尝试过的其他组合。

答案1

尝试设置 setuid 位并使其对 root 具有可执行权限,这是 sudo 的默认权限 (rws)

chmod u+s /mnt/rescue/usr/bin/sudo
chmod +x /mnt/rescue/usr/bin/sudo

虽然这对于拯救系统很有用,但还有许多其他文件和目录具有不同的权限和所有权,单独设置它们可能很繁琐。

相关内容