XDG_RUNTIME_DIR
systemctl --user
働くために必要です。
systemdユーザーセッションを実行するために、ubuntuサーバー16.04をセットアップしました。さて、それらを管理しようとすると、sudo -u $user -i
またはを介してユーザーを変更するsu - $user
と、環境がXDG_RUNTIME_DIR
設定されず、動作しなくなることがわかりsystemctl --user
ました。ただし、ssh
そのユーザーに直接アクセスすると、正しく設定されます。
ドキュメントを正しく理解していればlibpam-systemd
、ユーザーセッションの作成時に設定する必要があります。XDG_RUNTIME_DIR
point(/run/users/$uid
)を指定するディレクトリが存在するため、ユーザースライスは正しく開始されます。たとえば、.bash_profile
でハードコードするのはためらいます。なぜなら、PAMがそれを処理する必要があるとき、それは(動作しているとしても)ハッキーだと思われるからです。
もちろん、in に追加XDG_RUNTIME_DIR
することもできますが、それはsudoingユーザーの環境を維持するだけで、それは私が望んでいるものではありません。私がしたいターゲットユーザーの環境を。env_keep
sudoers
しかし、私が本当に不思議に思っているのは、どうしてセッションがで正しく設定されssh
ているのsu
か、ではなく、またはであるのsudo -i
か?
XDG_RUNTIME_DIR
れませんsudo
か?それから私はそれを設定すること~/.profile
は私が思ったほどハッキーではなかったと思います。