Ostatnio przeszedłem z Ubuntu na Arch Linux. Zainstalowałem X11 jako mój system okien i KDE jako środowisko pulpitu. Mam oddzielną partycję dla /home
, /var
, /
i /boot
, a oni wszystko zamontować w czasie startu. Po uruchomieniu startx
wyświetla się następujący komunikat.
xauth:timeout in locking authority file /home/hello/.Xauthority
Przez przypadek usunąłem ten plik. Skopiowałem to z /root
. Zmieniłem jego uprawnienia za pomocą poniższego kodu:
# chown hello:users ~/.Xauthority
Nawet po tym nie mogę uruchomić, startx
chyba że użyję konta root.
startx
ponownie. Czy to działa? Jeśli nie, jaki jest dokładny komunikat o błędzie?Odpowiedzi:
Najpierw wyjaśnienie,
X
to nie menedżer okien , jest to system okienkowy .Teraz
~/.Xauthority
plik jest po prostu miejscem, w którymX
przechowywane są poświadczenia identyfikacyjne dla sesji bieżącego użytkownika . Jest to plik odczytywany, gdy system musi ustalić, czy masz prawo do korzystania z bieżącejX
sesji.Nigdy nie należy kopiować istniejącego konta z innego konta, plik powinien zawsze należeć do uruchomionego użytkownika
X
i jest tworzony automatycznie po rozpoczęciu nowejX
sesji. Więc po prostu usuń ten, który masz, a następnie uruchomstartx
ponownie, wszystko powinno działać normalnie:źródło
startx
ponownie.df -h
a także upewnij się, że problem nadal występuje po ponownym uruchomieniu.Myślę, że problem polega na tym, że ludzie logują się jako root, a następnie przełączają użytkowników za pomocą
su -l username
, co tworzy / odradza podproces w rootie, którego właścicielem jest „nazwa użytkownika”. X użyje.Xauthority
najwyższego procesu (w tym przypadku root), którego „nazwa użytkownika” nie ma uprawnień do używania.Błąd zostanie wyświetlony:
Aby rozwiązać ten problem, po prostu uruchom
login
zamiastsu
uruchamiać nową powłokę jako najwyższy proces.źródło
Spotkałem to na Lenovo IdeaPad z dwiema kartami graficznymi, jedną od Intela, drugą od Nvidii.
Błąd wynikający z
startx
uwzględnienia tej linii:To było rozwiązanie:
/etc/mkinitcpio.conf
, dodającMODULES=(nouveau)
sudo mkinitcpio -p linux
źródło