您没有本地硬件的管理员权限?你有 Linux 和 Docker 吗?如果以上问题的答案是肯定的,那么在本文中,我将向您展示如何使用 Docker 修改sudoers文件,从而获得管理员权限。

这篇文章是使用谷歌翻译从波兰语翻译而来的。原始帖子可以在我的博客上找到,地址为https://blog.budzynskimaciej.pl.

先决条件

此处介绍的方法要求受限用户有权访问 docker 命令,即该用户属于 docker 组。 Docker 配置要求用户属于该组。此方法仅适用于 Linux(在 Ubuntu 上测试)。

TLDR

  • 运行 alpine linux,文件/etc/sudoers在容器中安装为sudoers:
docker run -it -v /etc/sudoers:/sudoers --rm alpine /bin/sh

进入全屏模式 退出全屏模式

  • 更改权限以使用 vi 编辑sudoers:
chmod 777 sudoers
vi sudoers

进入全屏模式 退出全屏模式

  • sudoers文件中为用户添加所需的权限(i键添加条目):
# A tab is required between user and ALL (TAB once, not 4 spaces)
user    ALL=(ALL:ALL) ALL

进入全屏模式 退出全屏模式

  • 从 vi 退出保存:
:wq

进入全屏模式 退出全屏模式

  • 重新修改sudoers文件的权限为默认值并退出容器控制台:
chmod 755 sudoers
exit

进入全屏模式 退出全屏模式

  • 验证对sudoers的更改:
cat /etc/sudoers
sudo su

进入全屏模式 退出全屏模式

各个命令的说明

docker run -it -v /etc/sudoers:/sudoers –rm alpine /bin/sh

此命令允许您获取 alpine linux 映像,然后从该映像启动容器。-it参数负责启动交互模式(保持STDIN打开,即使它没有连接)并分配一个伪 TTY。-v参数将主机目录或文件绑定到容器卷。在这种情况下,我们将主机文件/etc/sudoers绑定到容器根目录中的sudoers文件。--rm参数导致创建的容器在退出和退出shell时被删除。alpine /bin/sh片段负责选择将创建容器的映像(在本例中为 linux alpine)并启动命令(程序)/bin/sh,即系统 shell。

chmod 777 sudoers 和 vi sudoers

默认情况下,/etc/sudoers文件受到保护,无法编辑。由于 alpine 是一个简约的 linux 发行版,它默认带有 vi 文件编辑器。sudoers文件应该用visudo编辑,但是 alpine 默认没有安装这个。为了编辑文件,使用在 alpine 容器中启动的chmod 777 sudoers命令将文件的完全权限授予当前用户。然后您可以使用 vi 编辑器使用以下命令打开sudoers文件:vi sudoers。要在 vi 编辑器中输入文本,请按键盘上的i按钮。

用户全部u003d(全部:全部)全部

上面的条目允许您添加执行所有命令的用户权限。第一个字段表示受规则影响的用户的名称 (user)。第一个ALL表示此规则适用于所有主机。第二个ALL表示用户用户可以作为所有用户运行命令。第三个ALL表示用户 user 可以作为所有组运行命令。第四个ALL表示这些规则适用于所有命令(commands)。请记住在文件中保留适当的格式。在 Ubuntu 中,userALL之间是一个制表符间距(不是四个空格)。就个人而言,我不确定使用单个空格或 4 个空格是否会破坏任何内容,因此我确定了目标格式。

退出 vi

要退出 vi 编辑器并保存更改,请按键盘上的esc键,然后键入:wq。冒号后面的命令是 vi 的命令。w表示我们要保存对文件所做的更改,q表示关闭文件。

chmod 755 sudoers 并退出

我们在编辑前将 sudoers 文件的权限更改为默认值,然后使用exit命令退出容器 shell。出发时,高山集装箱将被移除。只有下载的图像会保留在磁盘上。

cat /etc/sudoers 和 sudo su

为了验证访问,我们可以使用命令cat /etc/sudoers来检查条目是否被正确添加。我们还可以使用sudo su命令来检查是否可以像 sudo 一样执行命令。

结论

如您所见,docker 允许您更改用户权限并修改默认情况下我们无权访问的文件。 Docker 组属于管理组,因此该组中有权执行 docker 命令的用户可以选择对文件进行任何修改,而无需访问管理员权限。

Logo

更多推荐