특정 사용자를 사용하여 컨테이너 내부에서 프로그램을 실행하고 싶습니다. 기본적으로 lxc-attach를 사용할 때 사용자는 루트이지만 루트로 프로그램을 실행하고 싶지 않습니다.
내가 실행하고 싶은 명령은 다음과 같습니다.
lxc-attach -n container -- python3 some_program.py
컨테이너에 연결할 때 사용자가 uid=0(루트) 대신 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"'