Zunächst gehe ich davon aus, dass dies, wenn dies möglich ist, als root (oder als Benutzer, der die UID von root von 0 teilt) erfolgen muss.
Wie kann ein Prozess gestartet werden, damit er nicht in einem ps aux
oder ps ef
oder einer top
Liste angezeigt wird, wenn der Befehl von einem Nicht-Root-Benutzer ausgeführt wird?
Ist das überhaupt möglich?
Die Distributionen, die ich normalerweise verwende, sind RHEL / CentOS und Ubuntu. Wenn es also eine distro-spezifische Antwort gibt, ist das auch in Ordnung.
Antworten:
Hier haben Sie einige Möglichkeiten. Der einfache Ausweg wäre, die ps- und top-Programme gegen modifizierte Versionen auszutauschen, die verbergen, was Sie verbergen möchten.
Die Alternative wäre, Ihren in einen vorhandenen Prozess eingebetteten Code auszuführen oder ein Wrapper-Skript mit einem harmlosen Namen um Ihren Code zu schreiben.
In einigen PS-Versionen können Sie es ändern, indem Sie argv [] ändern. Sie sind sich jedoch nicht sicher, ob dies für top funktioniert und ob es unter Linux funktioniert (es handelt sich hauptsächlich um eine BSD-Konvention).
Es hängt alles davon ab, was genau Sie damit erreichen möchten.
quelle
python myScript.py
und allesubprocess.Popen
Befehle (die Passwörter enthalten können oder nicht) werden nicht angezeigt, solange es sich um denselben Vorgang handelt?Laut Kernel-Patch http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=0499680a42141d86417a8fbaa8c8db806bea1201 können Sie die Option hidepid für das proc-Dateisystem verwenden:
Sie können die Sichtbarkeit auf Prozessebene nicht steuern, aber Sie können sicherstellen, dass Ihre Benutzer nur ihre eigenen Prozesse sehen können.
Wenn Sie eine Kernelversion größer als 3.3 haben, können Sie es mit dem folgenden Befehl versuchen:
quelle
hidepid=2
Ding so einschränken , dass es nur bestimmte Benutzer betrifft (oder bestimmte Benutzer auf die Whitelist setzt)?root
?Verwenden Sie den Befehl F in top und den Befehl n, um beispielsweise zu konfigurieren, was Sie sehen möchten. Verwenden Sie den Befehl W, um die Konfiguration zu schreiben, die Sie möchten ~ / .toprc - verwenden? um die obersten Befehle zu sehen. Dies kann Ihr Problem schnell lösen - es hat für mich getan. Mit F kann ich die Felder hinzufügen / entfernen, die ich sehen möchte, während ich in f s verwenden kann, um die Sortierung festzulegen, und dann q, um zur Anzeige zurückzukehren. dann n, um festzulegen, wie viele Prozesse ich sehen möchte, und W, um sie in .toprc zu speichern
quelle