Prozesse vor anderen Benutzern basierend auf Gruppen (unter Linux) verbergen?

8

Ist es möglich, das Ausblenden von Prozessen für bestimmte Benutzergruppen unter einem Linux-System zu konfigurieren?

Beispiel: Benutzer aus Gruppe X sollten keine Prozesse sehen, deren Eigentümer Benutzer aus Gruppe Y in ps / top oder unter / proc sind.

Ist es möglich, ein solches Setup mit SELinux zu konfigurieren?

(Ich erinnere mich vage an eine ähnliche Funktion im lustigen Grsecurity-Patch-Set - aber IIRC war allgemeiner - und außerdem möchte ich eine Standard-Linux-Distribution konfigurieren, ohne einen benutzerdefinierten Kernel warten zu müssen.)

Bearbeiten: Zur besseren Veranschaulichung verfügt Solaris 10 über eine ähnliche Funktion . Das Beispiel ist nicht so allgemein, aber man kann konfigurieren, dass ein Benutzer oder einige Benutzer nur Informationen über ihre eigenen Prozesse in ps usw. sehen können.

maxschlepzig
quelle
1
Ich weiß es nicht, aber die beste Quelle für SELinux-Informationen ist wahrscheinlich das Buch (Amazon Link) SELinux von Example: Using Security Enhanced Linux
Xenoterracide
Grsecurity erledigt dies für einzelne Benutzer mit Ausnahme von root.
Stribika
Ähnliche Frage mit mehr Antworten: unix.stackexchange.com/questions/17164/…
Jofel

Antworten:

4

Tatsächlich scheint SELinux solche Konfigurationen zuzulassen :

Vom ersten Howto :

Dieses Mal werden alle Prozesse auf dem System angezeigt, unabhängig von der Domäne, in der sie sich befinden. In der Domäne sysadm_t haben Sie Zugriff auf andere Domänen, die die Domäne user_t nicht hat.

Aus dem zweiten Howto :

In der dritten Zeile kann staff_t ps ausführen und Prozesse in den nicht privilegierten Benutzerdomänen anzeigen. staff_t kann ps ausführen und alles in user_t und anderen Benutzerdomänen anzeigen, während user_t dies nicht kann.

maxschlepzig
quelle
-1

Ohne ein Rootkit oder ohne das Hacken des Kernels, um dieses Verhalten spezifisch zuzulassen, gibt es keine vorgefertigten Optionen.

Wenn es sich um Prozesse handelt, die über Code gestartet wurden, auf den Sie Zugriff haben, können Sie ihn möglicherweise neu kompilieren, während Sie das an das Programm übergebene Argument argv [0] ändern. Dies könnte den Namen effektiv in etwas Gutartiges ändern und ihn somit vor jedem "verstecken", der oben oder ps usw. prüft.

Shamster
quelle
Eigentlich gibt es vorgefertigte Optionen ...;) Siehe meine Antwort für Details ...
maxschlepzig
@maxschlepzig, danke für den Link zu denen. Ich hatte keine Ahnung.
Shamster