Làm thế nào để chạy startx là không root?


10

Gần đây, tôi đã chuyển từ Ubuntu sang Arch Linux. Tôi đã cài đặt X11 làm Hệ thống cửa sổ và KDE làm Môi trường máy tính để bàn. Tôi đã phân vùng riêng biệt cho /home, /var, //bootvà tất cả đều gắn vào lúc khởi động. Khi tôi chạy startx, thông báo sau sẽ được hiển thị.

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

Chính xác, tôi đã xóa tập tin đó. Vì vậy, tôi đã sao chép nó từ /root. Tôi đã thay đổi thẩm quyền bằng cách sử dụng mã dưới đây:

# chown hello:users ~/.Xauthority

Ngay cả sau này, tôi không thể chạy startxtrừ khi tôi sử dụng tài khoản root.


Sao chép tập tin là một rủi ro bảo mật. Bạn đã thay đổi quyền của nó (quyền sở hữu), không phải thẩm quyền của nó.
ctrl-alt-delor

(Re) di chuyển ~ / .Xmasterity và thử startxlại. Nó có hoạt động không? Nếu không, thông báo lỗi chính xác là gì?
Adaephon

Câu trả lời:


11

Lần đầu tiên một giải thích, Xkhông một quản lý cửa sổ , nó là một hệ thống cửa sổ .

Bây giờ, ~/.Xauthoritytệp chỉ đơn giản là nơi Xlưu trữ thông tin nhận dạng cho phiên của người dùng hiện tại , đó là tệp được đọc khi hệ thống cần xác định xem bạn có quyền sử dụng Xphiên hiện tại không .

Bạn không bao giờ nên sao chép một tài khoản hiện có từ một tài khoản khác, tệp phải luôn thuộc về người dùng đang chạy Xvà được tạo tự động khi bạn bắt đầu một Xphiên mới . Vì vậy, chỉ cần xóa cái bạn có, rồi chạy startxlại, mọi thứ sẽ hoạt động như bình thường:

$ rm ~/.Xauthority; startx

Tredon, ngay cả sau khi xóa tệp .Xmasterity. Tôi không thể bắt đầu. Nó tiếp tục hiển thị cùng một lỗi.
Habi

@Habi bạn cần đảm bảo không có phiên X nào đang chạy, sau đó xóa tệp, sau đó chạy startxlại.
terdon

Bây giờ, X chạy nhưng hiển thị một thông báo khác Gọi đến Inusertemp không thành công (thư mục tạm thời đầy đủ?). Kiểm tra cài đặt của bạn.
Habi

@Habi ah, tốt, đó là tiến bộ :). Xin vui lòng gửi một câu hỏi khác cho điều này vì nó là một vấn đề hoàn toàn khác. Trong câu hỏi mới, hãy cho chúng tôi thấy đầu ra df -hvà cũng đảm bảo rằng vấn đề này vẫn còn đó sau khi khởi động lại.
terdon

Tredon, ya tôi sẽ xem xét tiến trình đó. :). Btw, cảm ơn.
Habi

3

Tôi nghĩ một vấn đề là mọi người đăng nhập bằng root, sau đó chuyển người dùng bằng cách sử dụng su -l username, tạo ra / sinh ra một quy trình con dưới quyền sở hữu của "tên người dùng". X sẽ sử dụng .Xauthorityquy trình hàng đầu (trong trường hợp này là root), "tên người dùng" không được phép sử dụng.

Lỗi sẽ được hiển thị:

Cannot open virtual console 1 (Permission denied).

Để giải quyết điều này, chỉ cần chạy loginthay vì subắt đầu một lớp vỏ mới như một quá trình hàng đầu.


0

Tôi đã gặp điều này trên Lenovo IdeaPad với hai card đồ họa, một từ Intel và Nvidia.

Lỗi do startxbao gồm dòng này:

addscreen / screeninit fail for driver 0 kde plasma

Đây là giải pháp:

  1. Thay đổi /etc/mkinitcpio.confbằng cách thêmMODULES=(nouveau)
  2. sudo mkinitcpio -p linux
  3. khởi động lại
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.