失去使用 sudo 命令的权限

失去使用 sudo 命令的权限

我将 /etc 文件夹权限更改为 711。

执行此操作后,我失去了使用 sudo 命令的权限。有什么方法可以改回文件夹权限吗?

到目前为止我已经尝试过:

1)使用su -,认证失败

2)sudo ...,显然不起作用。

sudo: unable to open /etc/sudoers: Permission denied

sudo: no valid sudoers sources found, quitting

sudo: unable to initialize policy plugin

答案1

关于使用,有一个非常好的详细答案chroot 这里

正如 user1461135 所说,您需要将 iso 添加到虚拟机中,使用它启动,然后挂载您的/分区。因此,首先检查/分区的名称。登录您的 Linux 系统并运行:

$ mount | grep "/ "

这应该返回如下一行:

/dev/disk/by-uuid/d5cf13h31-f344-41237-92c5-e29c6006442h60 开启 / 类型 ext4 (rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=ordered)

或者像这样:

/dev/sda7 on / 类型 ext4 (rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=ordered)

在第一种情况下,您的分区通过其 UUID 挂载。要找出此 UUID 对应的设备,请运行:

$ ls -l /dev/disk/by-uuid/

您将看到 返回的 UUIDmount对应于特定/dev/sdX设备。在我的系统上,它是/dev/sda7。如果您有类似上述第二个示例的行,则您已经知道该设备。

现在,按照评论中的建议从 CD 启动到实时会话,创建一个空目录,并将系统挂载在那里:

$ mkdir mountpoint
$ sudo mount /dev/sda7 mountpoint

记得用你的分区替换sda7它。一旦系统挂载,我甚至不确定你是否需要 chroot。你可能直接运行 chmod 命令就可以了:

$ sudo chmod 755 mountpoint/etc

现在,重新启动你的 Linux 系统,一切应该恢复正常。

答案2

同意上述用户关于使用实时 CD 的意见,这可能是您最快的成功途径。

在启动映像之前在 VMWare 中挂载 liveCD ISO 文件,然后您就可以访问硬盘上的数据。

到达那里后,您需要查看“/etc/sudoers”文件 - 该文件会告诉您哪些组可以执行 sudo 操作。我的文件如下所示:

Defaults    env_reset
Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

这告诉我“sudo”组和“admin”组都具有完全 sudo 访问权限。然后您需要确保您的用户位于 sudoers 文件指定的组中。我认为我的安装对于 ubuntu 安装来说是相当标准的。

相关内容