Muss sich ein Benutzer im Allgemeinen anmelden, um einen Prozess auszuführen und sein Eigentümer zu werden (ruid oder euid)? Gilt dies für alle Benutzer oder Nicht-Root-Benutzer?
Zum Beispiel:
-
In der Boot-Sequenz von Linux startet der Kernel das Init-System als ersten Prozess, und dann führt der Init-Prozess
login
aus damit sich jeder Benutzer anmelden kann.
Der Init-Prozess gehörtroot
, und macht den Benutzerroot
müssen Sie sich anmelden, bevor Sieinit
starten Prozess? Siehe Warum gibt es einen `systemd`-Prozess, der jedem angemeldeten Benutzer gehört? -
Bei Verwendung von
ssh
Um einen Befehl auszuführen, ohne eine interaktive Shell zu starten, müssen wir uns zuerst anmelden oder nicht, um den Befehl auszuführen?
Wie kann ich das tun, wenn ich mich nicht anmelden muss, um einen Prozess als dessen Eigentümer auszuführen?
Danke.
Akzeptierte Antwort:
Nein, Sie müssen sich nicht anmelden, um einen Prozess zu starten, der als ein bestimmter Benutzer ausgeführt wird. Das Einloggen ist ein User-Space-Konstrukt; dem Kernel ist das egal. Dafür gibt es mehrere Beispiele; Cron-Jobs können beispielsweise von jedem Benutzer ausgeführt werden, ohne dass dieser Benutzer angemeldet ist.
Um Ihre spezifischen Fragen zu beantworten:
- nein, root muss sich nicht anmelden, um
init
zu starten Gott sei Dank (stellen Sie sich vor, Sie würden ansonsten eine Flotte von Tausenden von Servern und Millionen von VMs handhaben); - Verbindung über SSH gilt als Anmeldung.