使用 root 为另一个用户创建 root shell

使用 root 为另一个用户创建 root shell

我正在使用一个嵌入式 Linux 系统,该系统有两个著名用户:root 和 admin。我可以通过 ssh 以管理员身份登录,但不能以 root 身份登录(密码未知)。系统制造商暂时打开了一个安全漏洞,允许我使用管理员用户创建一个以 root 身份执行的启动脚本。我想使用这个启动脚本来生成一个 root shell,稍后我可以使用用户管理员连接到它。我不确定术语,但我想我想创建一个连接到具有权限设置的交互式 shell 的虚拟 tty,以便管理员可以打开它。我不知道要运行什么命令来实现这一点。

答案1

我想我想创建一个连接到交互式 shell 的虚拟 tty

嗯,当然,您可以做到这一点——但是您将如何连接到这个 tty?如果设备上有串行连接,则可以在其上运行交互式 shell:

sh </dev/ttyS0 >/dev/ttyS0 2>/dev/ttyS0

无需登录,只需插入串行电缆即可获得 root shell。如果您通过 SSH 连接,则不太容易,因为 SSH 的设计目的不是绕过登录。当然,您可以为 root 帐户设置空白密码,并将 SSH 配置为授权 root 登录。

但前提是您想要允许任何可以连接到设备的人以 root 身份运行命令。如果您想允许管理员用户将权限提升到 root,那么使用终端是没有意义的。

最直接的方法是为您知道的根帐户设置密码。或者,安装须藤在设备上,将以下行添加到文件中/etc/sudoers

admin ALL=(ALL:ALL) ALL

sudo mycommand然后,您可以通过运行(sudo -s获取 shell)以 root 身份从管理员帐户运行命令。如果您不想admin在运行时输入帐户密码sudo,请NOPASSWD:在右括号后添加。

如果根文件系统是只读的,您可以安装sudo在其他地方。二进制文件必须位于不使用noexec或选项安装的文件系统上nosuid

相关内容