Score:0

How to get variable environment from parent user?

ธง tr

I need to know how it's possible to get environment variable from a parent user after su? For example if I'm evan user and I have variable $DISPLAY=:10.0, then I use "su -" to go to root user, how could I get the $DISPLAY variable from parent evan user?

kanehekili avatar
zw flag
ดูเหมือน XY [ปัญหา](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) อาจบอกเราว่าทำไมคุณต้องแสดงในรูท ...
antonio1 avatar
tr flag
ดีมาก.ฉันต้อง su ในรูทเพื่อเรียกใช้สคริปต์ แต่ในภายหลังในสคริปต์ฉันต้องเปิดใช้ xclock ซึ่งใช้งานไม่ได้เพราะบางอย่างเช่นปัญหาการแสดงผลไม่ได้รับการสืบทอดมาจากผู้ใช้ดั้งเดิม ถ้าฉันตั้งค่า DISPLAY เป็น evan ผู้ใช้ดั้งเดิมด้วยตนเอง ทุกอย่างทำงานได้ดี แต่ค่าที่แสดงจะเปลี่ยนไป
Score:0
ธง tr

ฉันพบวิธีแก้ปัญหาโดยใช้บรรทัดต่อไปนี้:

prev_user=$(pstree -lu -s $$ |grep --max-count=1 -o '([^)]*)' |head -n 1 | sed 's/[()]//g')
inherit_display=$(xauth -f /home/$prev_user/.Xauthority list|tail -1|cut -d/ -f2|cut -d ' ' -f1)

ส่งออก DISPLAY="$inherit_display"

prev_user - รับผู้ใช้ก่อนหน้า (ผู้ใช้หลัก) จากที่ฉันใช้ su

inherit_display - รับค่า DISPLAY สำหรับผู้ใช้พาเรนต์

ในที่สุดฉันก็ส่งออกค่าไปยัง DISPLAY ใหม่ของฉันสำหรับรูท

ทำงานเหมือนหมอผี

Score:0
ธง zw

ในกรณีนี้ฉันจะดูที่ xhost

โดยปกติแล้วฉันยังสามารถจัดการเพื่อเปิด GUI เป็นรูท (ขึ้นอยู่กับ linux distro) ด้วยการกำหนด

ส่งออก DISPLAY=:0.0

ในสคริปต์ของฉัน

ฉันไม่ทราบถึง ID ที่แสดงที่เปลี่ยนไปตามที่คุณเขียน

antonio1 avatar
tr flag
ทันทีที่ DISPLAY แตกต่างจากต้นฉบับที่เปิด DISPLAY=:10.0 จะไม่ทำงานในเซสชันเดียวกัน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา