GNU/Linux >> Linux の 問題 >  >> Linux

実行中のプロセスが属するグループを特定する

グループのリストは Groups の下にあります /proc//status;たとえば、

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

プライマリ グループは Gid の下に表示されます :

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

ps 他の回答が示すように、プロセスのグループを表示することもできます。


有効なグループ ID、実際のグループ ID、および補助グループ ID (アクセス制御に使用される) について:

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

gidrgid supgid でかなり移植性があります 少ない (3 つすべてが ps で利用可能) Linux ベースのシステムで通常見られる procps から)。

grouprgroupsupgrp グループ ID をグループ名に変換するために使用できますが、対応するグループ名が複数あるグループ ID の場合、そのうちの 1 つだけが表示されることに注意してください (ls -l の場合と同じ) vs ls -n または ID に基づいてユーザー名またはグループ名を処理するもの)。

プロセス グループ ID (ターミナル ジョブ制御に使用):

ps -o pgid -p "$pid"

変数に格納するには:

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

ps の使用 :

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

man ps から 、-o に使用される出力列 :

   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. ファイルを作成しているプロセスを特定する方法は??

  2. どのシェルで実行していますか?

  3. 実行中のプロセスの環境を変更しますか?

  1. 同じが実行されている場合はプロセスを確認しますか?

  2. Linux –実行中のLinuxディストリビューションを特定する方法は??

  3. 別のTtyでプロセスを開始しますか?

  1. Pidのないプロセスを特定する方法は?

  2. 独自のプロセスグループでプロセスを開始する方法は?

  3. Linux サーバーで pty を食べているのはどのプロセスですか?