Welcher Benutzer führt die in /etc/rc.local definierten Befehle aus?

12

Sind die Befehle in /etc/rc.localRAN von sustandardmäßig?
Muss ich sudovor jedem Befehl eine Angabe machen oder werden sie sutrotzdem ausgeführt?

SK '
quelle

Antworten:

16

suist kein Benutzer, sondern ein Programm zum Ausführen nachfolgender Befehle / Programme unter einer anderen Identität eines anderen Benutzers als dem, der den Befehl ausführt. sudoDiesbezüglich ist es sehr ähnlich .

Sofern kein anderer Benutzer angegeben ist, führen beide Befehle den Befehl standardmäßig unter der alternativen Identität des rootBenutzers, des Superusers / Administrators, aus.

Der Hauptunterschied zwischen suund sudoist, dass:

  • su erfordert, dass Sie das Passwort dieses alternativen Benutzers kennen, wo
  • sudosudofordert zur Eingabe des Kennworts des Benutzers auf, der den Befehl ausführt, und erfordert eine Einrichtung, damit der Benutzer die angeforderten Befehle / Programme ausführen kann.

(Wenn ausgeführt wird, ist rootentweder suoder sudokein Passwort erforderlich.)


Wie jedes Init-Skript wird das /etc/rc.localSkript vom rootBenutzer ausgeführt und Sie müssen weder vor sunoch sudoden Befehlen / Programmen, die als root ausgeführt werden müssen, voranstellen .

Möglicherweise müssen Sie noch suoder sudoin Ihren Init-Skripten verwenden, wenn diese Befehle nicht als einroot anderes Benutzer- / Dienstkonto ausgeführt werden müssen ...

su -oracle/do/something/as/oracle/user

HBruijn
quelle
Was mache ich, wenn ich su - user /path/to/script.sh in rc.local einfüge und beim Sourcing dazu auffordere, das Benutzerkennwort einzugeben (und das Terminal anschließend zu schließen). Wie kann ich dafür sorgen, dass ich nicht nach dem Passwort des Benutzers gefragt werde?
Alonsos
10

Ja, alle Skripte und Programme werden direkt von root aufgerufen.

Die /etc/rc.localDatei wird direkt vom Init-Prozess aufgerufen.

dmourati
quelle
1
Also mussten wir nicht sudovor Befehlen hinzufügen /etc/rc.local?
Benyamin Jafari