XDG_RUNTIME_DIRจำเป็นสำหรับsystemctl --userการทำงาน
ฉันได้เซ็ตอัพเซิร์ฟเวอร์ Ubuntu 16.04 เพื่อเรียกใช้เซสชันผู้ใช้ systemd ตอนนี้เมื่อพยายามที่จะจัดการพวกเขาฉันพบว่าเมื่อเปลี่ยนผู้ใช้ผ่าน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ไม่ได้แฮ็คอย่างที่ฉันคิด