Antworten:
Haben Sie versucht, zu verwenden su - foo
?
Update basierend auf den Kommentaren:
Das leere Zeichen -
fordert Sie su
auf, 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. DISPLAY
um Programme zu öffnen, die den Fensterserver verwenden, müssen Sie das Leerzeichen weglassen -
.
mate myfile
und 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.
open -a TextMate myfile
.
su foo
könnte ich es tun. Durch Weglassen der werden -
die Umgebungsvariablen der Werte beibehalten .
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, nano
nachdem ich su - admin
eine .bashrc
Datei 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
su - foo
?