Bagaimana menjalankan startx sebagai non-root?

10

Baru-baru ini, saya beralih dari Ubuntu ke Arch Linux. Saya telah menginstal X11 sebagai Sistem Jendela dan KDE sebagai Lingkungan Desktop saya. Saya sudah partisi terpisah untuk /home, /var, /dan /bootdan mereka semua me-mount pada saat boot. Ketika saya menjalankan startx, pesan berikut ini akan ditampilkan.

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

Secara tidak sengaja, saya telah menghapus file itu. Jadi, saya menyalinnya dari /root. Saya telah mengubah otoritas menggunakan kode di bawah ini:

# chown hello:users ~/.Xauthority

Bahkan setelah ini, saya tidak dapat berjalan startxkecuali saya menggunakan akun root.

Habi
sumber
Menyalin file adalah risiko keamanan. Anda mengubah izinnya (kepemilikan), bukan otoritasnya.
ctrl-alt-delor
(Re) pindahkan ~ / .Xauthority dan coba startxlagi. Apakah itu bekerja? Jika tidak, apa pesan kesalahan sebenarnya?
Adaephon

Jawaban:

11

Pertama klarifikasi, Xadalah tidak seorang window manager , itu adalah sistem windowing .

Sekarang, ~/.Xauthorityfile hanyalah tempat kredensial identifikasi untuk Xsesi pengguna saat ini disimpan, itu adalah file yang dibaca ketika sistem perlu menentukan apakah Anda memiliki hak untuk menggunakan Xsesi saat ini .

Anda tidak boleh menyalin yang sudah ada dari akun lain, file harus selalu milik pengguna yang sedang berjalan Xdan dibuat secara otomatis saat Anda memulai Xsesi baru . Jadi, hapus saja yang Anda miliki, lalu jalankan startxlagi, semuanya akan berfungsi seperti biasa:

$ rm ~/.Xauthority; startx
terdon
sumber
Tredon, bahkan setelah menghapus file .Xauthority. Saya tidak dapat starx. Itu terus menampilkan kesalahan yang sama.
Habi
@Habi Anda harus memastikan tidak ada sesi X yang berjalan, lalu hapus file, lalu jalankan startxlagi.
terdon
Sekarang, X berjalan tetapi menampilkan pesan lain Panggilan ke Inusertemp gagal (direktori sementara penuh?). Periksa instalasi Anda.
Habi
@Habi ah, bagus, itu kemajuan :). Silakan kirim pertanyaan lain untuk ini karena ini adalah masalah yang sama sekali berbeda. Dalam pertanyaan baru, perlihatkan kepada kami outputnya df -hdan pastikan masalah ini masih ada setelah dimulai ulang.
terdon
Tredon, ya saya akan mempertimbangkan kemajuan itu. :) Btw, terima kasih.
Habi
3

Saya pikir masalahnya adalah orang-orang masuk sebagai root, kemudian beralih menggunakan pengguna su -l username, yang membuat / menumbuhkan subproses di bawah root yang dimiliki oleh "nama pengguna". X akan menggunakan .Xauthorityproses paling atas (dalam hal ini root), yang mana "nama pengguna" tidak memiliki izin untuk digunakan.

Kesalahan akan ditampilkan:

Cannot open virtual console 1 (Permission denied).

Untuk mengatasinya, jalankan saja loginalih-alih sumemulai shell baru sebagai proses teratas.

Jonathan Komar
sumber
0

Saya menemukan ini di Lenovo IdeaPad dengan dua kartu grafis, satu dari Intel yang lain dari Nvidia.

Kesalahan yang dihasilkan dari startxtermasuk baris ini:

addscreen / screeninit gagal untuk driver 0 kde plasma

Ini solusinya:

  1. Ubah /etc/mkinitcpio.confdengan menambahkanMODULES=(nouveau)
  2. sudo mkinitcpio -p linux
  3. reboot
Matthias Braun
sumber