一般ユーザーに訴えた後に実行すると
podman run --network=podman" -it ubi8
エラーが発生しました。
ERRO[0013] failed to move the rootless netns slirp4netns process to the systemd user.slice: Process org.freedesktop.systemd1 exited with status 1
システムログ/var/log/messagesから:
Jan 26 12:16:39 ezb5568 dbus-daemon[145488]: Cannot setup inotify for '/root/.local/share/dbus-1/services'; error 'Permission denied'
Jan 26 12:16:39 ezb5568 dbus-daemon[145488]: [session uid=0 pid=145486] Activating service name='org.freedesktop.systemd1' requested by ':1.0' (uid=0 pid=145470 comm="podman run --network=podman")
Jan 26 12:16:39 ezb5568 dbus-daemon[145488]: [session uid=0 pid=145486] Activated service 'org.freedesktop.systemd1' failed: Process org.freedesktop.systemd1 exited with status 1
答え1
他のユーザーと対話的にPodmanを実行する
$ sudo -i
# machinectl shell username@
Connected to the local host. Press ^] three times within 1s to exit session.
$ podman run --rm -ti docker.io/library/alpine
/ # cat /etc/alpine-release
3.17.3
/ #
PS:Fedora 38システムでは、このコマンドはmachinectl
パッケージにあります。
システムコンテナ
$ rpm -qf /usr/bin/machinectl
systemd-container-253-1.fc38.aarch64
非対話式で他のユーザーとしてPodmanを実行する
# sudo systemd-run \
--machine=username@ \
--quiet \
--user \
--collect \
--pipe \
--wait \
podman run \
--rm \
docker.io/library/alpine \
echo hello
hello
注:Fedora 38システムでは、このコマンドはsystemd-run
パッケージにあります。
システム
$ rpm -qf /usr/bin/systemd-run
systemd-253-1.fc38.aarch64
su
他のユーザーとしてPodmanを実行しない理由
使用しない理由は、su
ブログ投稿を読んでください。
sudoまたはsuを介してユーザーとしてログインしたときにルートレスPodmanコンテナを実行できないのはなぜですか? https://www.redhat.com/sysadmin/sudo-rootless-podman
答え2
podmanを実行している他のユーザーに変更する場合は、そのユーザーとしてコンソールにログインする必要がありますssh user@localhost
。su
元のユーザーが設定した変数を使用すると、切り替えるユーザーのシェル環境が汚染されます。これはポッドマンの既知の問題です。私はこれをやってきsudo su - user
ましたが、実行時にpodmanが失敗します。-
orを使用するだけでは十分ではありません。コンソールログインにはorを--login
使用する必要があります。ssh
いくつかの回避策がありますが、私の経験では信頼できません。