Moje zwykłe konto użytkownika to, powiedzmy, użytkownik 1. Utworzyłem osobnego użytkownika2 dla niektórych aplikacji x, które chciałbym uruchomić, będąc zalogowanym do x jako użytkownik1, ale w sposób, który uniemożliwi dostęp do odczytu / zapisu danych użytkownika1. Myślałem, że mogę użyć xauth i sudo / su na user2 z user1, aby uruchomić tę aplikację. Jak mam to zrobic? Nie jestem pewien, jak skonfigurować xauth.
48
.Xauthority
pliku w katalogu domowym użytkownika2. Problem 2: Jakoś iz jakiegoś powodu nie rozumiem, po tymsu
, XAUTHORITY przechowuje ścieżkę do pliku user1. Ale ten plik nie jest czytelny dla użytkownika2.unset XAUTHORITY
pod user2hexkey
wxauth add
poleceniu taka sama jak odxauth list
czy muszę stworzyć losową nowy?Wstawiłem
.zshrc
linię zexport XAUTHORITY=~/.Xauthority
i teraz jestem w stanie wykonaćsudo -E xcommand
. Po wielu googlowaniach był to dla mnie najłatwiejszy sposób.źródło
sudo -E
(i używanie-E
jest wyłączone w większości domyślnych instalacji), ponieważ normalnie domyślnasudoers
konfiguracja pozwala naXAUTHORITY
przekazanie zmiennej środowiskowej do sudo.-E
. Można go ustawić jako zmienną, którą można przekazać i sugeruje to Red Hat lub Debian.Zakładając, że debian lub ubuntu (powinny być podobne w Red Hat / SUSE).
źródło
sux
jest nieobsługiwany (i usunięty z repozytoriów Debiana / Ubuntu): packages.qa.debian.org/s/sux/news/20140101T172633Z.htmlPo pierwsze: nie używaj
xhost +
, jest raczej niepewny (koc pozwala / odmawia).Zamiast tego użyj mechanizmu X-Cookie:
Alternatywnie, jeśli masz
sux
zainstalowany, użyj go (patrz odpowiedź ehempela).W obu przypadkach użytkownik2 użyje tajnego pliku cookie w .Xauthority w celu autoryzacji na serwerze X i nikt inny nie będzie miał do niego dostępu.
Uwagi:
.Xauthority
możesz także użyćxauth
do wyodrębnienia i skopiowania klucza autoryzacji (patrz odpowiedź Randalla). Jeśli w.Xauthority
pliku jest wiele kluczy, jest to bardziej selektywne; w przeciwnym razie jest to kwestia gustu.źródło
To rozwiąże problem dla wszystkich użytkowników:
źródło
Jako root:
Gdzie twoja nazwa użytkownika to nazwa użytkownika :)
Następnie wykonaj su, ponieważ użytkownik
xclock
powinien działać, jeśli jest zainstalowanyźródło
To tylko hacki:
powyżej myślę, że ma właściwe rozwiązanie.
źródło
ssh -X
jest bardzo prostym i eleganckim rozwiązaniem, niezależnym od przestarzałych / nieutrzymanych rzeczy gtk / kde (które wymagają zainstalowania większej liczby plików binarnych z bitem SUID ...).Znalazłem coś, co działa dla mnie świetnie w KDE
źródło
kde-cli-tools
i nie w,$PATH
ale w/usr/lib/x86_64-linux-gnu/libexec/kf5/kdesu
(oczywiście w zależności od architektury).W ten sposób wykonane w suse / opensuse: http://www.novell.com/support/kb/doc.php?id=7003743
Wystarczy zmodyfikować /etc/pam.d/su, dodając opcję (pogrubienie):
Następnie możesz przełączać za pomocą su bez -:
i uruchom aplikację graficznie.
źródło
W przypadku GNOME (i bez żadnego środowiska graficznego, używam go tylko z icewm)
gksu
:źródło