XDG_RUNTIME_DIRlà 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 -ihoặc thậm chí su - $user, môi trường không được XDG_RUNTIME_DIRthiết lập, ngăn systemctl --userkhông cho hoạt động. Tuy nhiên, khi tôi sshvà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-systemdkhi 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_DIRvào env_keeptrong 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 suhay sudo -i?
XDG_RUNTIME_DIRchosudocác phiên theo thiết kế? Tôi đoán sau đó tôi cài đặt nó~/.profilekhông phải là hack như tôi nghĩ.