Terminal: login(1) oder su(1)?

Terminal: login(1) oder su(1)?

Ich verwende OSX. Kann beides verwendenAnmelden(1)odersu(1)um sich als beliebiger Benutzer anzumelden.

Aber zwei Binärdateien für die gleiche Aufgabe??

Welcher verbraucht wenigerSystemressourcen?

Welches ist weniger anfällig fürSicherheits Risikos?

WelcheUnterschiede unter der Haube?

[Hinweis: Ich habe nichts dagegen, Root-Zugriff zu erhalten. Ich plane lediglich, den Zugriff auf Konten auf einem Mehrbenutzer-, Netzwerk-*nix zu automatisieren.]

Antwort1

loginstartet eine Shell mit einer neuen Umgebung und verwirft die aktuelle.

sustartet eine Shell unter Verwendung der vorhandenen Umgebung und ändert nur die Variablen HOME, USER und SHELL.

Zum Beispiel,

> export foo=bar
> su <username>
> echo $foo
bar

Aber:

> export foo=bar
> login <username>
> echo $foo

druckt nichts.

Soweit ich weiß, su -list es gleichwertig mit login.

Antwort2

su(1) erstellt eine neue Shell mit der aktuellen Umgebung. Sobald Sie die Subshell verlassen, kehren Sie zur aufrufenden Shell zurück.

Auch login(1) erstellt eine neue Shell, allerdings mit einer neuen Umgebung.

Antwort3

Es ist nicht genau derselbe Job. „su“ ändert lediglich den Benutzer, dem das aktuelle Terminal gehört, „login“ (wie der Name schon sagt) erstellt eine neue Sitzung.

Ich bin kein OSX-Experte, aber bei allen *NIXes ist es wichtig, die Remote-Direktanmeldung als Root zu verbieten. Dies sollte nur mit „su“ nach der Anmeldung als normaler Benutzer erfolgen.

verwandte Informationen