GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Welchen Zweck haben die verschiedenen UIDs, die ein Prozess haben kann?

Jedem UNIX-Prozess sind 3 UIDs zugeordnet. Das Superuser-Privileg ist UID=0.

Echte UID

Dies ist die UID des Benutzers/Prozesses, der DIESEN Prozess erstellt hat. Sie kann nur geändert werden, wenn der laufende Prozess EUID=0 hat.

Gültige UID

Diese UID wird verwendet, um die Privilegien des Prozesses auszuwerten, um eine bestimmte Aktion auszuführen. EUID kann entweder in RUID oder SUID geändert werden, wenn EUID!=0. Wenn EUID=0, kann es beliebig geändert werden.

Gespeicherte UID

Wenn Sie eine ausführbare Datei mit gesetztem Set-UID-Bit ausführen, beginnt der resultierende laufende Prozess mit einer echten UID des echten Benutzers, der sie ausführt, und einer effektiven und gespeicherten UID des Eigentümers der ausführbaren Datei. Wenn der Prozess dann setuid() oder seteuid() aufruft, um ihre effektive UID zu ändern, können sie dank der gespeicherten UID immer noch ihre ursprünglichen Privilegien zurückerhalten. Wenn das Set-UID-Bit nicht gesetzt ist, ist SUID die RUID.


Die echte UID ist die ID des Benutzers, der einen Prozess gestartet hat.

Die effektive UID ist typischerweise dieselbe wie die tatsächliche UID. Es ist nur anders, wenn:

  • Bei der ausführbaren Datei war das set-uid-Bit gesetzt, und der Besitzer der ausführbaren Datei ist ein anderer als der Benutzer, der sie aufruft

  • oder wenn ein set-uid-Prozess setuid(2) aufruft. Wenn der Prozess Superuser-Privilegien hat, ist jedes Argument für setuid(2) erlaubt (aber dann werden alle *-uids auf denselben Wert gesetzt); andernfalls kann setuid(2) mit der realen UID oder der effektiven UID oder der gespeicherten UID aufgerufen werden.

Die gespeicherte UID ist die effektive UID, die der Prozess hatte, als er gestartet wurde, und sie wird gespeichert, um als Argument für die verschiedenen set*uid-Systemaufrufe zugelassen zu werden.

Beachten Sie, dass ein Prozess mit Superuser-Rechten, der setuid(2) aufruft, um seine effektive UID zu ändern, auch die reale UID und die gespeicherte UID auf denselben Wert geändert hat, daher sollte stattdessen die Nicht-POSIX-seteuid(2) verwendet werden.

Alle oben genannten Punkte gelten auch für (echte|effektive|gespeicherte) Gruppen-IDs.


Zusätzlich zu den echten, effektiven und gespeicherten UIDs haben Unix-Systeme mit aktiviertem Auditing auch die Audit-UID. Die AUID eines Prozesses identifiziert den Benutzer, der den Prozess gestartet hat; es wird nicht durch setuid(2) oder seteuid(2) geändert. Die Absicht ist, dass es während des gesamten Prozesses konstant bleibt und nur zum Markieren von Audit-Aufzeichnungen verwendet wird. Wenn also ein Benutzer eine privilegierte Shell ausführt (sogar ein autorisierter Benutzer über su oder sudo), werden die Audit-Aufzeichnungen dieses Prozesses von diesem Benutzer gekennzeichnet.


Linux
  1. Welchem ​​Zweck dient der eingebaute Doppelpunkt „:“?

  2. Was ist der Zweck des Benutzers „mysql.sys@localhost“.

  3. Was ist der Zweck der Gruppe „Wheel“ in Linux?

  4. Was ist der Zweck der .bashrc-Datei in Linux

  5. Was ist die aktuelle Linux-Kernelquelle?

SIGTERM vs. SIGKILL:Was ist der Unterschied?

Was sind die verschiedenen Arten von Shells in Linux?

Was ist die Definition einer Sitzung unter Linux?

Was ist die Grenze für die Nr. von Partitionen kann ich haben?

Kann ein Prozess einen Besitzer haben? Was bedeutet das?

Was ist der Zweck eines nachgestellten '-' in einer Kubernetes-Anwendung -f -