Wie kann ich unter Linux die EUID des ausgeführten Prozesses über die Befehlszeile ändern (vorausgesetzt, ich habe Root-Zugriff)?
linux
security
process
privileges
Jackhab
quelle
quelle
Wenn Sie über einen Prozess sprechen, der seine eigene EUID ändert, gibt es eine Reihe von Möglichkeiten, dies zu tun.
Abhängig von der effektiven UID des Programms und davon, ob eine gespeicherte UID vorhanden ist, können Sie in einem Nicht-Root-Programm möglicherweise zwischen zwei EUID-Werten wechseln. Bei einem Root-privilegierten Programm müssen Sie vorsichtig sein - Sie müssen entscheiden, ob die Änderung irreversibel sein soll, und die richtige Funktion für den Job verwenden. (Die Verwendung von setuid () als root ist irreversibel.)
Wenn Sie versuchen, einen Prozess zu ändern, der bereits von einem separaten Prozess ausgeführt wird, gibt es keine Standardmethode - und ich bin mir auch nicht sicher, ob es viele nicht standardmäßige Methoden gibt. Sie könnten in der Lage sein, einige Informationen in / dev / kmem abzuspeichern, aber der Ausdruck "dünnes Eis" kommt Ihnen in den Sinn.
quelle
Es gibt keine Möglichkeit, dies "von der Kommandozeile aus" für jeden laufenden Prozess zu tun.
Ich kann das mit einiger Gewissheit sagen; Das einzige "Vielleicht" war / proc und ich habe mich dort umgesehen (buchstäblich und über Google) und bin in eine Sackgasse geraten, was irgendetwas in / proc betrifft, das das Ändern der EUID ermöglicht. Sie können die UID- und GID-Einstellungen in / proc / {pid} / status LERNEN - aber Sie können sie mit / proc nicht ändern, zumindest soweit ich das beurteilen kann.
Es ist jedoch einfach genug, so etwas zum Laufen zu bringen - eine Möglichkeit, die EUID eines Prozesses über die Befehlszeile zu ändern -, wenn Sie den Quellcode des Prozesses steuern, den Sie ändern möchten. Sie können einen Signal-Handler für SIGUSR1 implementieren und den Prozess seine eigene EUID ändern lassen, je nachdem, wann er dieses Signal empfängt. Dann würden Sie einfach den Prozess, den SIGUSR1 signalisiert, über "kill" ... von der Kommandozeile aus senden, wie Sie gefragt haben ... und die EUID für Sie ändern.
Das ist vielleicht nicht das, woran Sie gedacht haben, aber ... es ist eine Antwort auf Ihre Frage, wie es geht ... und es ist die einzige Antwort, die mir einfällt.
quelle