Jak mogę zapobiec zdalnemu logowaniu ssh przed zerwaniem dbus?


10

Korzystam z openSUSE 11.3 na mojej stacji roboczej w pracy pod KDE, nie mam do niego uprawnień roota. Domyślna powłoka została ustawiona na tcsh. Kiedy jestem zalogowany na stacji roboczej i loguję się zdalnie z mojego MacBooka z systemem OS X 10.6, używając ssh:

ssh -X -C user@workstation.edu

wszystko dziala; jednak po zakończeniu otrzymuję błędy DBUS w sesji stacji roboczej za każdym razem, gdy próbuję uruchomić cokolwiek za pomocą GUI, w tym niestety okno dialogowe wylogowania z panelu paska zadań. Mam już dość zabijania, startkdeżeby się wylogować w takich sytuacjach.

W Internecie znalazłem wiele instrukcji dotyczących łączenia się z istniejącą sesją dbus za pomocą ssh, ale chciałbym zrobić odwrotnie, pozostawiając istniejącą sesję dbus całkowicie nietkniętą przez sesję zdalnego logowania ssh.

Jeśli zrobię

ssh -X -C user@workstation.edu dbus-launch konsole

to działa, więc tylko interaktywna powłoka logowania łamie dbus. Jak powinienem zmodyfikować ~/.cshrc? Należy pamiętać, że nie mam uprawnień do modyfikowania /etc/cshrc, /etc/loginitp

W razie potrzeby mogę wymienić zawartość tych plików tutaj.

Aktualizacja:

Oto duży plik tar ze wszystkimi skryptami, które mogłem znaleźć:

http://dl.dropbox.com/u/17203983/cshrc.tgz


Tak, proszę opublikować zawartość plików inicjujących, które mają znaczenie. Ponadto, proszę dokładnie opisać, jakie polecenia przerywają sesję lokalną (czy to działa, dbus-launch konsolektóra przerywa sesję lokalną? Czy tylko interaktywny login ssh, w którym naciskasz exitnatychmiast?).
— Gilles „SO- przestań być zły”

@Gilles Hmm, próbowałem edytować moje pytanie z zawartością plików, ale jest za dużo znaków. Dowiem się, jak i gdzie mogę je przesłać. W międzyczasie konsola dbus-launch nie przerywa sesji lokalnej, podczas gdy interaktywne logowanie ssh z wiersza poleceń, a następnie natychmiast wyjście. W rzeczywistości nawet samo rsync powoduje również uszkodzenie dbus (wydaje mi się dziwne, że rsync domyślnie uruchamia skrypty powłoki logowania, ale tak się dzieje).
— user1079118

Wypróbuj pastebin.com dla dużych plików.
— Gilles „SO- przestań być zły”,

Odpowiedzi:


1

W rzeczywistości sesje dbus są na maszynę i na X wyświetlacz.

Wykonując zdalną sesję SSH, używasz innego ekranu X11 (zazwyczaj localhost: 10)

Jeśli zabijesz cały dbus i uruchomisz go podczas sesji SSH, to zadziała ... dla sesji SSH. Ale oczywiście psuje wszystkie inne sesje dbus w maszynie.

Konieczne jest sprawdzenie, czy sesja dla komputera + wyświetlacza już istnieje, jeśli tak, skorzystaj z niej, jeśli nie, uruchom nowy dbus dla tej kombinacji i poinformuj o tym sesję.

Spójrz na https://unix.stackexchange.com/a/188877/32769, aby znaleźć blok bashowy, który możesz umieścić w pliku $ HOME / .bash_profile, aby wykonać te testy i właściwie zrobić właściwą rzecz.

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.