我将 /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 安装来说是相当标准的。