1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Mini Tutorial: Terminal teilen / "Über die Schulter schauen"

Dieses Thema im Forum "Unix & Terminal" wurde erstellt von Skeeve, 25.04.07.

  1. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Bitte beachtet auch die Diskussion im Zusammenhang mit suid (chmod +s) unten!

    Der von lazertis & pepi vorgestellte Weg ist der sicherere.


    Hi!

    Ich stand schon mehrfach vor der Situation, daß ich jemandem im Terminal was zeigen wollte, derjeinge aber irgendwoanders auf der Welt saß.

    Zum Glück gibt es ein Programm, mit dem man soetwas leicht bewerkstelligen kann.

    screen

    Nun bin ich nicht der Experte für dieses Programm und ich kenne längst nicht die Feiheiten und Möglichkeiten, aber vielleicht nutzt es ja jemandem, wenn ich mal beschreibe, wie man es nutzt, um gemeinsam in derselben Shellsession arbeiten zu können.

    Zunächst muß es einen Rechner geben (host) auf dem sich beide User einloggen können. Nennen wir sie Ich und Du.

    Du willst zusehen, wie Ich etwas auf meinem host erledige.

    Dazu bekommst Du zunächstmal Zugang zu meinem host. Am geschicktesten über ssh. Dazu aber an anderer Stelle von jemand anderem später mehr ;) Nachtrag: Ich habe inzwischen erfahren, daß es da schon längst was gibt...

    Wenn also Du eingeloggt bist, dann tippe Ich in meinem Terminal Fenster als Vorbereitung ein:
    Code:
    sudo chmod +s /usr/bin/screen
    Dies mache ich aber nur ein einziges Mal. Auch nach einem Rechnerneustart brauche ich das nicht wieder einzugeben. (Achtung! Damit wird das s-Bit (das "set-user-ID-on-execution and set-group-ID-on-execution" Bit) gesetzt. Sowas sollte man nicht ohne guten Grund machen!)

    Wenn Ich dieses Bit schonmal gesetzt habe, dann kann Ich nun eingeben:
    Code:
    screen
    Es erscheint ein Hinweisbildschirm, den man mit [Space] bestätigt. (Text in der Formatierung [irgendwas] bezeichnet eine Taste, die zu drücken ist)

    Anschließend hat man wieder einen Prompt.

    Nun muß man screen noch mitteilen, daß man einen weiteren User zulassen möchte. Dazu wechselt man mit [ctrl]+[a] gefolgt von [:] in den Kommandomodus. Erkennbar daran, daß in der unten linken Ecke ein inverser Doppelpunkt zu sehen ist. Dort tippt man nun ein:
    Code:
    multiuser on
    was durch die (inverse) Meldung "Multiuser mode enabled" bestätigt wird.

    Anschließend bekommst Du noch die Erlaubnis auf den Screen zuzugreifen. Wieder in den Kommandomodus wechseln: [ctrl]+[a] [:] und das kommando eingeben:
    Code:
    addacl Du
    (Für "Du" natürlich die Kennung des entsprechenden anderen Users nehmen.) Diesmal erfolgt keine Bestätigung.

    Du gibst nun im Terminal ein, nachdem Du Dich ja auf meinem host angemeldet hast:
    Code:
    screen -r Ich/
    (Für "Ich" natürlich die Kennung des entsprechenden anderen Users nehmen.)

    Du solltest nun alles sehen, was Ich im Terminal tippe, und umgekehrt.

    Mit [ctrl]+[d] kann jeder der beiden die Sitzung beenden.
     
    #1 Skeeve, 25.04.07
    Zuletzt bearbeitet: 04.05.07
    Chuck-.- und (gelöschter Benutzer) gefällt das.
  2. Dr.Apfelkern

    Dr.Apfelkern Jerseymac

    Dabei seit:
    18.04.07
    Beiträge:
    454
    Man kann aber auch auf die Webseite http://terminaltalk.de/ gehen und sich dort die Tutorials durchlesen, diese sich per Download nach Hause holen und danach seine Konfiguration durchführen. Das ist sicherer als per SSH mit anderen entfernten Teilnehmern auf dem Rechner rumzuspielen.

    Solange es sich natürlich dabei um deinen privaten Rechner handelt, liegt die Verantwortung in deiner Hand. Auf einem Firmen-Rechner geht so was schon mal gar nicht.

    Nichts desto trotz werden das jetzt hier einige Leser ausprobieren wollen. Ich rate davon strikt ab. Einfach der Sicherheit zur Liebe.

    Danke für die Aufmerksamkeit, ich geh dann mal wieder "runter".
     
  3. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Davon gehe ich aus.

    Sollte das auf einem Firmenrechner möglich sein, so gehört der Firewall Admin abgewatscht, dafür, daß er ssh von aussen nach innen zuläßt.

    Wie Du meinst. Ich fand es bisher immer mehr als nützlich, einem Kollegen so z.B. zu zeigen, wie Solaris installiert wird oder wie er sein sudo file erweitert, um nur 2 der letzten Anwendungsfälle zu schildern.
     
  4. lazertis

    lazertis Schöner von Nordhausen

    Dabei seit:
    26.11.06
    Beiträge:
    327
    Hallo zusammen,

    die Konstruktion mit screen geht sogar noch etwas einfacher.

    Start der Session: Wenn ich eine screen-Session starte, tue ich dies mit dem Parameter -S und gebe der Session einen Namen, sagen wir mal Uschi:
    screen -S Uschi
    Einer Session beitreten (attachen): Anschliessend loggt sich die zweite Person auf denselben User per ssh an und startet screen mit dem Parameter x sowie dem Session-Namen
    screen -x Uschi
    Schon können beide in parallel in der Screen-Session arbeiten.

    Eine Session verlassen: ...kann man durch einen Detach mit folgender Tastenkombination:
    Ctrl-A + d
    (Also erst Ctrl plus a, danach die Taste d (für detach). Schon ist man wieder draussen.)

    Session beenden: Mit exit oder Ctrl-D

    Natürlich sind bei ssh-Zugängen die jeweils sinnvollen und notwendigen Sicherheitsregeln zu beachten, aber das ist ein anderes Thema... ;)
     
  5. Rastafari

    Rastafari Golden Noble

    Dabei seit:
    10.03.05
    Beiträge:
    17.905
    Ein derart wackeliges Gefrickel-Dingens wie "screen", das noch dazu über eine derart unüberschaubare und vielschichtige Möglichkeit zu verdeckten Hintergrundoperationen bietet...
    screen suid setzen?
    Da würde ich lieber meine Brieftasche einem wildfremden Junkie vor dem Frankfurter Hauptbahnhof in die Finger drücken und ihn bitten, mal kurz darauf aufzupassen...
    KEINE plusgute Idee. screen ist mir schon unter "normalen" Benutzerrechten nicht ganz geheuer. Danke - nein.
     
    Trapper gefällt das.
  6. lazertis

    lazertis Schöner von Nordhausen

    Dabei seit:
    26.11.06
    Beiträge:
    327
    Jep, volle Zustimmung, ein suid auf screen ist grob fahrlässig. Darum kommt die von mir gepostete Lösung auch ohne suid (d.h mit dem nach Mac OS X-Installation vorhandenen Standard) aus und kann nur "innerhalb des startenden Users" ausgeführt werden.

    In einer solchen Umgebung halte ich screen für durchaus praktisch, solange man sich durch andere Sicherheitsnachlässigkeiten nicht gerade den Frankfurter Bahnhofsjunkie auf den Rechner geholt hat. ;)
     
  7. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Schön wäre es. Klappt aber nicht. Ich habe mit "chmod -s /usr/bin/screen" das Bit wieder gelöscht.

    Dann habe ich ausgeführt
    Code:
    ich$ screen -S Uschi
    
    Zusätzlich habe ich die Kommandos "multiuser on" und "addacl andererUser" eingegeben, auch wenn Du das nicht beschrieben hast.

    Wenn der andere User nun eingibt:
    Code:
    anderer$ screen -x Uschi
    erscheint "There is no screen to be attached matching Uschi."

    Wenn er eingibt:
    Code:
    screen -x Uschi/
    erscheint "Must run suid root for multiuser support."

    Es wäre also schön, Du würdest Deine Lösung nochmal überprüfen und wir suchen nach der richtigen Lösung um das Mini-Tutorial entsprechend zu ändern.

    Nachtrag: Multiuser support geht so nicht! Siehe hier.... Was Du beschrieben hast ist nur praktikabel, wenn beide User im selben Account arbeiten!

    Das sollte auch nicht unbedingt ein Problem darstellen. Denn wenn ich das s-Bit setzen darf, dann darf ich höchstwahrscheinlich auch einen User extra zu diesem Zweck anlegen. Wenn ich dann im screen bin, kann ich mit login auf meinen echten User wechseln.
     
    #7 Skeeve, 26.04.07
    Zuletzt bearbeitet: 26.04.07
  8. lazertis

    lazertis Schöner von Nordhausen

    Dabei seit:
    26.11.06
    Beiträge:
    327
    @Skeeve: Den Multiuser-Support habe ich bisher nicht genutzt, da kann ich nichts zu sagen. Ich nehme aber an, daß Du genau dafür das suid brauchst. (Der andere User führt damit screen als root aus und kann deswegen in einer User-fremden Session einsteigen. Genau das ist aber ein grosses Sicherheitsloch!)

    Meine Lösung braucht kein suid, funktioniert aber auch nur innerhalb eines Users, d.h. Dein "Besucher" muss als derselbe User wie Du angemeldet sein.
     
  9. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    Soweit ich screen kenne ist ein Multiattach von verschiedenen (non-root) Usern ausschließlich möglich wenn screen SUID root ist. Dies ist natürlich sicherheitstechnisch unter keinen Umständen vertretbar.

    Die beste Lösung dürfte daher wirklich sein, daß beide Benutzer sich mit einem unpreviligierten User einloggen, die screen session starten und der "Leiter" der Session diese dann per login mit dem entsprechenden previligierten User anmeldet.

    Alternativ könnte man schauen inwiefern man den Output einer Terminal (oder auch screen) Session per wall(1) oder write(1) an einen anderen User senden könnte. So wäre auch das read only Problem erledigt.
    Gruß Pepi

    ...und wenn ich jetzt noch irssi mit screen und multiwindow support per ssh zum Laufen bekäme hätte ich einen großen Knoten weniger in meinem Kopf...
     
  10. lazertis

    lazertis Schöner von Nordhausen

    Dabei seit:
    26.11.06
    Beiträge:
    327
    ---------------------------------------------------------------------------------------------------------------
    Ergänzung: Meine untenstehende Antwort basiert auf einem Mißverständnis.
    Sie ist zwar korrekt, aber Pepis obenstehende Aussage natürlich auch. :)
    ---------------------------------------------------------------------------------------------------------------


    Doch, es funktioniert - wie von mir in Post #4 beschrieben - wenn beide mit demselben User angemeldet sind. Dieser braucht keine Adminrechte. Und screen ist nicht SUID:

    pro:~ elmar$ ls -l /usr/bin/screen
    -rwxr-xr-x 1 root wheel 628408 Jul 2 2006 /usr/bin/screen

    SUID root sähe so aus:

    pro:/usr/bin root# ls -l screen
    -rwsr-xr-x 1 root wheel 628408 Jul 2 2006 screen


    Einfach mal ausprobieren... ;)
     
    #10 lazertis, 02.05.07
    Zuletzt bearbeitet: 04.05.07
  11. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Und genau das hat pepi doch geschrieben (Hervorhebung durch mich):
     
  12. lazertis

    lazertis Schöner von Nordhausen

    Dabei seit:
    26.11.06
    Beiträge:
    327
    @Skeeve: Stimmt, Du hast natürlich recht. Ich hatte Pepi falsch verstanden. Insofern stimmen unsere beiden Aussagen. :) Danke für den Hinweis.
     

Diese Seite empfehlen