XDG_RUNTIME_DIR
là cần thiết systemctl --user
để làm việc.
Tôi đã thiết lập máy chủ Ubuntu 16.04 để chạy các phiên người dùng systemd. Bây giờ, khi cố gắng quản trị chúng, tôi thấy rằng khi thay đổi người dùng thông qua sudo -u $user -i
hoặc thậm chí su - $user
, môi trường không được XDG_RUNTIME_DIR
thiết lập, ngăn systemctl --user
không cho hoạt động. Tuy nhiên, khi tôi ssh
vào thẳng người dùng đó, nó được đặt chính xác.
Nếu tôi hiểu tài liệu chính xác, điều này nên được đặt libpam-systemd
khi tạo phiên người dùng. Các lát cắt người dùng được bắt đầu một cách chính xác, như thư mục mà XDG_RUNTIME_DIR
điểm ( /run/users/$uid
) sẽ tồn tại. Tôi do dự chỉ cần mã hóa cứng .bash_profile
, vì, điều đó có vẻ như hacky (mặc dù đang hoạt động), khi pam nên chăm sóc nó.
Tôi có thể, tất nhiên, thêm XDG_RUNTIME_DIR
vào env_keep
trong sudoers
, nhưng điều đó sẽ chỉ bảo vệ môi trường của người dùng sudoing, mà không phải là những gì tôi muốn. Tôi muốn môi trường của người dùng mục tiêu .
Tuy nhiên, điều tôi thực sự thắc mắc là làm thế nào mà phiên được thiết lập chính xác với ssh
, nhưng không phải với su
hay sudo -i
?
XDG_RUNTIME_DIR
chosudo
các phiên theo thiết kế? Tôi đoán sau đó tôi cài đặt nó~/.profile
không phải là hack như tôi nghĩ.