su
ist kein Benutzer es ist Programm nachfolgende Befehle/Programme unter einer alternativen Identität eines anderen Benutzers auszuführen als demjenigen, der den Befehl ausführt. Es ist sudo
sehr ähnlich in jener Hinsicht.
Sofern kein anderer Benutzer angegeben ist, führen beide Befehle den Befehl standardmäßig unter der alternativen Identität root
aus Benutzer, der Superuser/Administrator.
Der Hauptunterschied zwischen su
und sudo
ist das:
su
erfordert, dass Sie das Passwort dieses alternativen Benutzers kennen, wobeisudo
wird nach dem Passwort des Benutzers fragen, dersudo
ausführt Befehl und erfordert eine Einrichtung, damit der Benutzer die angeforderten Befehle/Programme ausführen darf.
(Wenn root
läuft entweder su
oder sudo
es ist kein Passwort erforderlich.)
Wie jedes Init-Skript ist der /etc/rc.local
Skript wird von root
ausgeführt user und Sie müssen weder su
voranstellen oder sudo
zu den Befehlen/Programmen, die als root ausgeführt werden müssen.
Möglicherweise müssen Sie trotzdem su
verwenden oder sudo
in Ihren Init-Skripten, wenn diese Befehle nicht als root
ausgeführt werden müssen aber ein anderes Benutzer-/Dienstkonto...
su -
oracle
/do/something/as/oracle/user
Ja, alle Skripte und Programme werden direkt von root aufgerufen.
Die /etc/rc.local
Datei wird direkt vom Init-Prozess aufgerufen.