วิธีการเรียกใช้ startx ในฐานะที่ไม่ใช่รูต?


10

เมื่อเร็ว ๆ นี้ฉันเปลี่ยนจาก Ubuntu เป็น Arch Linux ฉันติดตั้ง X11 เป็นระบบหน้าต่างของฉันและ KDE เป็นสภาพแวดล้อมเดสก์ท็อปของฉัน ฉันพาร์ทิชันที่แยกต่างหากสำหรับ/home, /var, /และ/bootและพวกเขาทั้งหมดติดในเวลาบูต เมื่อฉันเรียกใช้startxข้อความต่อไปนี้จะปรากฏขึ้น

xauth:timeout in locking authority file /home/hello/.Xauthority

บังเอิญฉันได้ลบไฟล์นั้น /rootดังนั้นผมคัดลอกจาก ฉันได้เปลี่ยนสิทธิ์ในการใช้รหัสด้านล่าง:

# chown hello:users ~/.Xauthority

แม้หลังจากนี้ฉันไม่สามารถทำงานได้startxเว้นแต่ฉันจะใช้บัญชีรูท


การคัดลอกไฟล์มีความเสี่ยงด้านความปลอดภัย คุณเปลี่ยนการอนุญาต (ความเป็นเจ้าของ) ไม่ใช่สิทธิ์
ctrl-alt-delor

(เรื่อง) ย้าย ~ / .Xauthority แล้วลองstartxอีกครั้ง ใช้งานได้หรือไม่ ถ้าไม่ใช่ข้อความแสดงข้อผิดพลาดที่แน่นอนคืออะไร
Adaephon

คำตอบ:


11

ครั้งแรกชี้แจงXจะไม่จัดการหน้าต่างมันเป็นระบบ windowing

ตอนนี้~/.Xauthorityไฟล์เป็นเพียงที่เก็บข้อมูลประจำตัวสำหรับXเซสชันของผู้ใช้ปัจจุบันมันเป็นไฟล์ที่อ่านเมื่อระบบต้องการตรวจสอบว่าคุณมีสิทธิ์ใช้Xเซสชันปัจจุบันหรือไม่

คุณไม่ควรคัดลอกที่มีอยู่จากบัญชีอื่นไฟล์ควรเป็นของผู้ใช้ที่ทำงานอยู่เสมอXและถูกสร้างขึ้นโดยอัตโนมัติเมื่อคุณเริ่มXเซสชันใหม่ ดังนั้นเพียงแค่ลบสิ่งที่คุณมีแล้วเรียกใช้startxอีกครั้งทุกอย่างจะทำงานได้ตามปกติ:

$ rm ~/.Xauthority; startx

Tredon แม้หลังจากลบไฟล์. Xauthority ฉันไม่สามารถ starx มันยังคงแสดงข้อผิดพลาดเดียวกันนั้น
Habi

@Habi คุณต้องตรวจสอบให้แน่ใจว่าไม่มีเซสชัน X ที่กำลังทำงานอยู่จากนั้นลบไฟล์จากนั้นเรียกใช้startxอีกครั้ง
terdon

ตอนนี้ X รัน แต่แสดงข้อความอื่นการโทรไปยัง Inusertemp ล้มเหลว (ไดเรกทอรีชั่วคราวเต็มหรือไม่) ตรวจสอบการติดตั้งของคุณ
Habi

@Habi อาดีนั่นคือความคืบหน้า :) โปรดโพสต์คำถามอื่นสำหรับเรื่องนี้เนื่องจากเป็นปัญหาที่แตกต่างอย่างสิ้นเชิง ในคำถามใหม่แสดงผลลัพธ์ของเราdf -hและตรวจสอบให้แน่ใจว่าปัญหานี้ยังคงมีอยู่หลังจากรีสตาร์ท
terdon

Tredon, ya ฉันจะพิจารณาความคืบหน้านั้น :) Btw ขอบคุณ
Habi

3

ฉันคิดว่าปัญหาคือคนที่เข้าสู่ระบบในฐานะ root แล้วสลับผู้ใช้ที่ใช้su -l usernameซึ่งสร้าง / วางไข่ subprocess ภายใต้รากที่เป็นเจ้าของโดย "ชื่อผู้ใช้" X จะใช้.Xauthorityกระบวนการสูงสุด (ในกรณีนี้รูท) ซึ่ง "ชื่อผู้ใช้" ไม่ได้รับอนุญาตให้ใช้

ข้อผิดพลาดจะปรากฏขึ้น:

Cannot open virtual console 1 (Permission denied).

เพื่อแก้ปัญหานี้เพียงแค่เรียกใช้loginแทนที่จะsuเริ่มเชลล์ใหม่เป็นกระบวนการด้านบน


0

ฉันพบสิ่งนี้บน Lenovo IdeaPad ที่มีการ์ดกราฟิกสองอันหนึ่งอันจาก Intel อีกอันจาก Nvidia

ข้อผิดพลาดที่เกิดจากการstartxรวมบรรทัดนี้:

addscreen / screeninit ล้มเหลวสำหรับไดรเวอร์ 0 kde plasma

นี่คือทางออก:

  1. เปลี่ยน/etc/mkinitcpio.confโดยการเพิ่มMODULES=(nouveau)
  2. sudo mkinitcpio -p linux
  3. รีบูต
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.