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

Bestimmen Sie, in welcher Gruppe(n) sich ein laufender Prozess befindet?

Die Liste der Gruppen finden Sie unter Groups in /proc/ /status; zum Beispiel

$ grep '^Groups' /proc/$$/status
Groups: 4 24 27 30 46 110 115 116 1000

Die Primärgruppe ist unter Gid angegeben :

$ grep '^Gid' /proc/$$/status
Gid:    1000    1000    1000    1000

ps ist auch in der Lage, die Gruppen eines Prozesses anzuzeigen, wie die anderen Antworten zeigen.


Für die effektive Gruppen-ID, echte Gruppen-ID und zusätzliche Gruppen-IDs (wie sie für die Zugriffskontrolle verwendet werden):

ps -o gid,rgid,supgid -p "$pid"

gid und rgid sind ziemlich portabel, supgid weniger (alle 3 wären mit dem ps verfügbar von procps, wie es typischerweise auf Linux-basierten Systemen zu finden ist).

group , rgroup und supgrp kann verwendet werden, um Gruppen-IDs in Gruppennamen zu übersetzen, aber beachten Sie, dass für Gruppen-IDs, die mehrere entsprechende Gruppennamen haben, nur einer davon angezeigt wird (wie bei ls -l). gegenüber ls -n oder alles, was mit Benutzer- oder Gruppennamen auf der Grundlage von IDs zu tun hat).

Für die Prozessgruppen-ID (wie sie für die Terminal-Job-Steuerung verwendet wird):

ps -o pgid -p "$pid"

Um es in einer Variablen zu speichern:

pgid=$(($(ps -o pgid= -p "$pid")))

Mit ps :

$ ps -o group,supgrp $$
GROUP    SUPGRP
muru     adm,cdrom,sudo,dip,www-data,plugdev,lpadmin,mlocate,sambashare,lxd,libvirtd,docker,muru

Ab man ps , die für -o verwendeten Ausgabespalten :

   egid        EGID      effective group ID number of the process as a
                         decimal integer.  (alias gid).

   egroup      EGROUP    effective group ID of the process.  This will be
                         the textual group ID, if it can be obtained and
                         the field width permits, or a decimal
                         representation otherwise.  (alias group).

   gid         GID       see egid.  (alias egid).

   group       GROUP     see egroup.  (alias egroup).

   supgid      SUPGID    group ids of supplementary groups, if any.  See
                         getgroups(2).

   supgrp      SUPGRP    group names of supplementary groups, if any.  See
                         getgroups(2).

Linux
  1. Sicherstellen, dass ein Prozess immer ausgeführt wird?

  2. Umgebung eines laufenden Prozesses ändern?

  3. Linux – Wie erkennt man, welche Linux-Distribution läuft?

  4. Starten Sie einen Prozess auf einem anderen Tty?

  5. So bestimmen Sie, welcher Prozess in Linux auf die Festplatte schreibt

So listen Sie laufende Prozesse in Linux auf

Laufende Prozesse

Was ist ein unterbrechungsfreier Prozess?

Welcher Prozess frisst ptys in meinem Linux-Server?

Wie kann ich feststellen, welcher laufende Prozess Java verwendet?

Ermitteln Sie, welcher Gast auf XEN ausgeführt wird:HVM- oder PV-Gast