次の手順を使用して名前空間のマウントをテストしています。
# unshare --mount
# mount --bind rootfs/ ns_dir/
# cd ns_dir/
# pivot_root . .
# cd /
私のrootfsには/lib
、、/bin
サブフォルダがあります/etc
。bash
とを含むさまざまなバイナリに依存関係を配置しましたsu
。
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
あなたができることは、ルートではなく内部共有を無効にしてから、Enternsなしで使用することです。これにより、--preserve-credentials
マウントに使用できるコンテナ内のルート権限が提供されます。
回答を見るhttps://unix.stackexchange.com/a/767296/139357これは改善されるでしょう。