Wie erhalte ich den Namen des aktiven Benutzers über die Befehlszeile in OS X?
macos
command-line
Lawrence Johnston
quelle
quelle
whoami
Leopard bestätigt, dass sie durch ersetzt wurdeid
.Wenn Sie den vollständigen Namen (anstelle des Benutzernamens) anzeigen möchten, fügen Sie das
-F
Flag hinzu:quelle
Wer bin ich
BEARBEITEN
Das whoami-Dienstprogramm wurde durch das Dienstprogramm id (1) veraltet und entspricht
id -un
. Der Befehlid -p
wird für die normale interaktive Verwendung empfohlen.quelle
Über hier
Das Überprüfen des Besitzers von / dev / console scheint gut zu funktionieren.
stat -f "%Su" /dev/console
quelle
Ich bin mir ziemlich sicher, dass das Terminal in OS X genau wie Unix ist, daher lautet der Befehl:
Ich habe momentan keinen Mac bei mir, also korrigiert mich jemand, wenn ich falsch liege.
HINWEIS - Das
whoami
Dienstprogramm wurde veraltet und entsprichtid -un
. Es gibt Ihnen den aktuellen Benutzerquelle
Wenn Sie wissen möchten, wer gerade am System angemeldet ist:
(Dies ist von einem Linux-System; die Formatierung unter OS X kann geringfügig abweichen, die Informationen sollten jedoch ungefähr gleich sein.)
Es kann mehrere Anmeldesitzungen geben. Schließlich ist UNIX als Mehrbenutzersystem konzipiert.
quelle
Sie können auch den
logname
Befehl aus dem BSD General Commands Manual unter Linux oder MacOS verwenden, um den Benutzernamen des aktuell angemeldeten Benutzers anzuzeigen, selbst wenn der Benutzer einensudo
Vorgang ausführt . Dies ist beispielsweise nützlich, wenn Sie die Crontab eines Benutzers ändern, während Sie ein systemweites Paket mit sudo installieren:crontab -u $(logname)
Per
man logname
:quelle
Die Frage wurde meiner Meinung nach nicht vollständig beantwortet. Ich werde versuchen zu erklären: Ich habe einen Crontab-Eintrag, der eine Bash-Shell-Befehlsprozedur plant, die wiederum einige Bereinigungen meiner Dateien durchführt. Wenn Sie fertig sind, senden Sie mir eine Benachrichtigung über das OS X-Benachrichtigungscenter (mit dem Befehl
osascript -e 'display notification ...
). Wenn jemand (z. B. meine Frau oder meine Tochter) den aktuellen Benutzer des Computers zu ihr wechselt und mich im Hintergrund lässt, schlägt das Cron-Skript beim Senden der Benachrichtigung fehl .Also, wer ist der aktuelle Benutzer Mittel hat einige andere Leute die effektive Benutzer werden ließ mich im Hintergrund ? Haben
stat -f "%Su" /dev/console
kehrt die aktuellen aktiven Benutzername?Die Antwort ist ja; Jetzt wurde mein Crontab-Shell-Skript folgendermaßen geändert:
quelle
Benutzername im MAC-Terminal zu bekommen ist einfach ...
Ich benutze
whoami
in der Regel in Terminal ...In diesem Fall brauchte ich das zum Beispiel, um Tomcat Server zu installieren ...
quelle
Es gibt zwei Möglichkeiten:
oder
quelle
Sie können es auch aus den Umgebungsvariablen abrufen, aber das ist wahrscheinlich nicht sicher, daher würde ich Andrews Antwort folgen.
printenv USER
Wenn Sie es aus einer App wie Node abrufen müssen, ist es einfacher, es aus Umgebungsvariablen wie z
process.env.USER
.quelle
Definieren Sie 'aktiver Benutzer'.
Wenn die Frage "Wer ist der angemeldete Benutzer" lautet, ist "Wer bin ich" oder "Whoami" in Ordnung (obwohl sie unterschiedliche Antworten geben - "Whoami" meldet nur einen Benutzernamen; "Wer bin ich" meldet auf dem Terminal und Anmeldezeit auch).
Wenn die Frage lautet, welche Benutzer-ID die effektive ID für die Shell ist, ist es häufig besser, die ID zu verwenden. Dies berichtet über die tatsächliche und effektive Benutzer-ID und Gruppen-ID sowie über die zusätzlichen Gruppen-IDs. Dies kann von Bedeutung sein, wenn auf der Shell SUID oder SGID ausgeführt wird.
quelle