シェルでユーザーのシステムユーザーインスタンスを起動する

シェルでユーザーのシステムユーザーインスタンスを起動する

システムで他のユーザーのためにシェルを起動しました。ただし、このユーザーのシステムユーザーインスタンスはありません。

helloer@host $ sudo -u testusr bash
testusr@host $ systemctl --user status
Failed to connect to bus: $DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not defined (consider using --machine=<user>@.host --user to connect to bus of other user)

testusrのdbusまたはsystemdユーザーインスタンスをどのように起動しますか?

私はArch Linux、Linux 5.11.8.arch1-1、dbus 1.12.20-1、systemd 247.4-2を実行しています。

ベストアンサー1

他のユーザーに対してシステム操作を実行したい場合は、最も簡単な方法はそのユーザーとしてログインすることですssh user@localhost。ただし、以下は、ユーザースライスが現在のシェルを実行できるようにするための最小限の設定方法です。

otheruser=testusr
id=$(id -u $otheruser)
sudo systemctl start user@$id
sudo -u $otheruser \
 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$id/bus \
 systemd-run --user --scope --shell

おすすめ記事