在挂载命名空间内运行 su

在挂载命名空间内运行 su

我正在使用以下步骤测试挂载命名空间:

# unshare --mount
# mount --bind rootfs/ ns_dir/
# cd ns_dir/
# pivot_root . .
# cd /

我的 rootfs 有子文件夹/lib, /bin, /etc。我已经放置了各种二进制文件的依赖项,包括bashsu

su我的问题涉及命名空间内部的使用。我尝试了以下方法:

root:/# su alice
alice:/$ su bob
su: must be run from a terminal

我想问一下错误的含义su: must be run from a terminal。我在网上搜索并找到像这样的黑客答案关联它要求以下内容:

echo "import pty; pty.spawn('/bin/bash')" > /tmp/asdf.py
python /tmp/asdf.py

我尝试了该方法答案,但没有成功。我想问一下解决这个错误的正确方法是什么。我认为发生错误是因为需要输入密码才能切换用户。

答案1

您可以做的是取消与内部非 root 的共享,然后使用不带 的 Enterns ,--preserve-credentials这会为您提供容器内的 root 权限,您可以使用该容器进行挂载。

查看答案https://unix.stackexchange.com/a/767296/139357这将被改进

相关内容