XDG_RUNTIME_DIRsystemctl --userकाम करने के लिए आवश्यक है ।
मैंने सिस्टमड उपयोगकर्ता सत्र चलाने के लिए ubuntu सर्वर 16.04 स्थापित किया है। अब, जब उन्हें प्रशासित करने की कोशिश की जा रही है, तो मुझे पता चलता है कि जब उपयोगकर्ता द्वारा sudo -u $user -iया यहाँ तक कि किसी उपयोगकर्ता के माध्यम से su - $user, वातावरण XDG_RUNTIME_DIRसेट नहीं होता है, तो systemctl --userकाम करने से रोकता है। हालाँकि, जब मैं sshसीधे उस उपयोगकर्ता में आता हूं, तो यह सही तरीके से सेट किया गया है।
यदि मैं दस्तावेज़ीकरण को सही ढंग से समझता हूं, libpam-systemdतो उपयोगकर्ता सत्र बनाते समय इसे सेट किया जाना चाहिए । उपयोगकर्ता स्लाइस को सही ढंग से शुरू किया गया है, क्योंकि निर्देशिका को XDG_RUNTIME_DIRइंगित करना चाहिए ( /run/users/$uid) मौजूद है। मैं इसे केवल हार्डकोड करने में संकोच कर रहा हूं, कहते हैं, .bash_profileक्योंकि यह हैकी (यद्यपि काम करना) लगता है, जब पैम को इसकी देखभाल करनी चाहिए।
मैं, ज़ाहिर है, जोड़ सकते हैं XDG_RUNTIME_DIRकरने के लिए env_keepमें sudoersहै, लेकिन यह सिर्फ sudoing उपयोगकर्ता के पर्यावरण की रक्षा करेगा, जो नहीं है कि मैं क्या चाहता हूँ। मुझे लक्ष्य उपयोगकर्ता का वातावरण चाहिए।
हालांकि, मैं वास्तव में आश्चर्यचकित हूं, लेकिन यह है कि कैसे सत्र को सही ढंग से सेट किया गया है ssh, लेकिन इसके साथ suया नहीं sudo -i?
XDG_RUNTIME_DIRलिए निर्धारित नहीं होगाsudo? मुझे लगता है कि फिर मुझे लगता है कि~/.profileजैसा मैंने सोचा था कि यह उतना आसान नहीं है।