特定のユーザーを使用してLXCコンテナ内でプログラムを実行する

特定のユーザーを使用してLXCコンテナ内でプログラムを実行する

特定のユーザーを使用してコンテナ内でプログラムを実行したいと思います。デフォルトでは、lxc-attachを使用すると、ユーザーはrootですが、rootとしてプログラムを実行したくありません。

私が実行したいコマンドは次のとおりです。

lxc-attach -n container -- python3 some_program.py

コンテナに接続するときは、ユーザーがuid = 0(root)ではなくuid = 1000になることを望みます。

私はlxc-execute、lxc.init_uid、lxc.init_gidを使用できることを知っています。[ソース: LXC.CONTAINER.CONF(5)]しかし、lxc-executeを使用するとネットワーク接続はありません(コンテナが実行されていないためですか?)。

答え1

suユーザーを変更するには、次のコマンドを使用する必要があります。

$ sudo lxc-attach -n test -- su ubuntu -c 'whoami'
ubuntu

コマンドは次のとおりです(ユーザー名がわからない場合)。

lxc-attach -n container -- 'su $(getent passwd 1000| cut -f1 -d:) -c "python3 some_program.py"'

関連情報