特定のユーザーを使用してコンテナ内でプログラムを実行したいと思います。デフォルトでは、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"'