Jak uruchomić startx jako użytkownik inny niż root?


10

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 startxwyś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ć, startxchyba że użyję konta root.


Kopiowanie pliku stanowi zagrożenie bezpieczeństwa. Zmieniłeś jego uprawnienia (własność), a nie jego uprawnienia.
ctrl-alt-delor

(Re) move ~ / .Xauthority i spróbuj startxponownie. Czy to działa? Jeśli nie, jaki jest dokładny komunikat o błędzie?
Adaephon,

Odpowiedzi:


11

Najpierw wyjaśnienie, Xto nie menedżer okien , jest to system okienkowy .

Teraz ~/.Xauthorityplik jest po prostu miejscem, w którym Xprzechowywane 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żącej Xsesji.

Nigdy nie należy kopiować istniejącego konta z innego konta, plik powinien zawsze należeć do uruchomionego użytkownika Xi jest tworzony automatycznie po rozpoczęciu nowej Xsesji. Więc po prostu usuń ten, który masz, a następnie uruchom startxponownie, wszystko powinno działać normalnie:

$ rm ~/.Xauthority; startx

Tredon, nawet po usunięciu pliku .Xauthority. Nie mogę starx. Nadal wyświetla ten sam błąd.
Habi

@Habi musisz upewnić się, że nie ma uruchomionych sesji X, a następnie usunąć plik, a następnie uruchomić startxponownie.
terdon

Teraz X działa, ale wyświetla kolejny komunikat Błąd połączenia z Inusertemp (katalogi tymczasowe są pełne?). Sprawdź swoją instalację.
Habi

@Habi ah, dobrze, to postęp :). Proszę zadać kolejne pytanie, ponieważ jest to zupełnie inny problem. W nowym pytaniu pokaż nam wynik działania, df -ha także upewnij się, że problem nadal występuje po ponownym uruchomieniu.
terdon

Tredon, rozważę ten postęp. :) Btw, dzięki.
Habi

3

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 .Xauthoritynajwyższego procesu (w tym przypadku root), którego „nazwa użytkownika” nie ma uprawnień do używania.

Błąd zostanie wyświetlony:

Cannot open virtual console 1 (Permission denied).

Aby rozwiązać ten problem, po prostu uruchom loginzamiast suuruchamiać nową powłokę jako najwyższy proces.


0

Spotkałem to na Lenovo IdeaPad z dwiema kartami graficznymi, jedną od Intela, drugą od Nvidii.

Błąd wynikający z startxuwzględnienia tej linii:

addscreen / screeninit nie powiodło się dla sterownika plazmy 0 kde

To było rozwiązanie:

  1. Zmień /etc/mkinitcpio.conf, dodającMODULES=(nouveau)
  2. sudo mkinitcpio -p linux
  3. restart
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.