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:
suerfordert, dass Sie das Passwort dieses alternativen Benutzers kennen, wobeisudowird nach dem Passwort des Benutzers fragen, dersudoausfü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.