Wissen Sie, dass der Benutzer sich über ein Shell-Skript per SSH anmeldet?

Wissen Sie, dass der Benutzer sich über ein Shell-Skript per SSH anmeldet?

Ich habe ein Shell-Skript, das eines tun soll, wenn der Benutzer den Computer physisch verwendet, und eines, wenn der Benutzer über SSH angemeldet ist.

Wie würde ich dabei vorgehen?

Genauer gesagt, mein normaler Rechner ist OS X und dort möchte ich einen grafischen OS X-Editor (BBEdit) als EDITOR verwenden. Wenn ich mich jedoch von meinem Netbook aus per SSH mit meinem Mac verbinde, möchte ich vim verwenden – ich habe keine grafische Verbindung zu meinem Mac.

Danke!

Antwort1

Sie sollten die Umgebungsvariablen SSH_CONNECTION, SSH_TTY oder DISPLAY verwenden können.

Sehen:http://developer.apple.com/library/mac/#documentation/Darwin/Reference/Manpages/man1/ssh.1.html

 SSH_CONNECTION        Identifies the client and server ends of the connection.  The variable contains
                       four space-separated values: client IP address, client port number, server IP
                       address, and server port number.

Bearbeiten: SSH_CLIENT ist auch eine Option, wird aber nicht auf der Manpage angezeigt.

Antwort2

Vergleichen Sie Ihre envlokale Anmeldung und die Anmeldung über SSH.

Ich habe zB SSH_CONNECTION, SSH_CLIENT, SSH_TTYdie nur bei Anmeldung über SSH definiert sind.

Antwort3

Ich glaube, /var/run/utmpx (siehe „man utmpx“) enthält diese Informationen. Wenn Sie „who“ ausführen, sehen Sie, dass der Befehl who feststellen kann, ob Sie von einem Remote-Knoten aus verbunden sind (und sogar weiß, von wo aus Sie verbunden sind).

Sie können also immer den Befehl „who“ verwenden und die Ausgabe bearbeiten, um dies zu ermitteln.

Hinweis: Ich glaube, dass die obigen Antworten (zur Verwendung von SSH_CONNECTION) eine bessere Lösung darstellen.

verwandte Informationen