Wie melde ich mich als anderer Benutzer im Terminal an?

10

Ich bin derzeit als normaler Benutzer in OS X angemeldet.

Ich möchte eine Terminalsitzung starten und mich als Benutzer anmelden foo.

Ist das möglich?

Macek
quelle
1
Haben Sie versucht, zu verwenden su - foo?
Kraftan

Antworten:

16

Haben Sie versucht, zu verwenden su - foo?

Update basierend auf den Kommentaren:

Das leere Zeichen -fordert Sie suauf, sich vollständig anzumelden. Das heißt (von der Manpage),

Die Umgebung wird mit Ausnahme von HOME, SHELL, PATH, TERM und USER verworfen. HOME und SHELL sind wie oben modifiziert. USER ist auf die Zielanmeldung eingestellt. PATH ist auf "/ bin: / usr / bin" gesetzt. TERM wird aus Ihrer aktuellen Umgebung importiert. Die aufgerufene Shell ist die des Ziel-Logins, und su wechselt das Verzeichnis in das Home-Verzeichnis des Ziel-Logins.

Wenn Sie also andere Umgebungsvariablen benötigen, z. B. DISPLAYum Programme zu öffnen, die den Fensterserver verwenden, müssen Sie das Leerzeichen weglassen -.

Kraftan
quelle
Die Anmeldung funktioniert einwandfrei, aber ich habe es versucht mate myfileund erhalte den Fehler "Verbindung zu WindowServer konnte nicht hergestellt werden". Dies ist keine kritische Lösung, aber es wäre großartig, wenn dies funktioniert.
Macek
2
@macek: Das liegt daran, dass kein Windows Server (Aqua) an das Terminal angeschlossen ist. Wenn der Benutzer derzeit in der grafischen Umgebung angemeldet ist, versuchen Sie es open -a TextMate myfile.
Georg Schölly
1
@macek: Ich bin nicht sicher, aber vielleicht su fookönnte ich es tun. Durch Weglassen der werden -die Umgebungsvariablen der Werte beibehalten .
Kraftan
Danke für die Hilfe. @kraftan, aktualisieren Sie möglicherweise die Antwort, um beide mit einer kurzen Erklärung einzuschließen. :)
Macek
@Georg, das schien nicht zu funktionieren.
Macek
0

Unter MacOS X verwenden login


$ login
login: your username
password: your password
Letzte Anmeldung: Tag Monat Datum HH: MM: SS auf ttys000
$ whoami
Ihr Benutzername

Ich hatte Probleme, nanonachdem ich su - admin eine .bashrcDatei bearbeitet hatte . Beim Anpassen der Fenstergröße wird der Text verstümmelt. Die Antwort, die ich unten gefunden habe, erklärt warum und führte mich in die richtige Richtung.

"Der Terminalemulator sendet ein Window Change-Signal (SIGWINCH) an die Shell, die zusammen mit dem Terminalemulator gestartet wurde. Die Shell soll es an ihre untergeordneten Elemente weitergeben - aber wenn Sie zu einem anderen Benutzerkonto gewechselt sind (mit su oder anderweitig), es wird nicht in der Lage sein, diese Shell zu signalisieren, da sie als ein anderer Benutzer ausgeführt wird. Daher verwenden die su'd-Shell und alle darauf ausgeführten Programme weiterhin die alte Fenstergröße, ohne die Tatsache zu berücksichtigen, dass das reale Fenster Größe hat sich geändert. " - telcoM

John
quelle
-1

Ich habe es suoft versucht, aber ich fand sudoes einfacher. Du kannst es versuchen

sudo -u <username>
iPav
quelle
Mein Sudo scheint keine -uOption zu haben
Xiao