マウントネームスペース内でsuを実行する

マウントネームスペース内でsuを実行する

次の手順を使用して名前空間のマウントをテストしています。

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

私のrootfsには/lib、、/binサブフォルダがあります/etcbashとを含むさまざまなバイナリに依存関係を配置しました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これは改善されるでしょう。

おすすめ記事