プロセスのruid、euid、suidとrgid、egid、sgidを取得する方法は?

プロセスのruid、euid、suidとrgid、egid、sgidを取得する方法は?

プロセスのruid(実ユーザーID)、euid(有効suidユーザーID)、(保存ユーザーID)、rgid(実グループID)、egid(有効グループID)、sgid(保存グループID)をどのように取得しますかps

ベストアンサー1

Debian の使用procps-ng:

$ ps -o pid,euid,ruid,suid,egid,rgid,sgid,cmd
  PID  EUID  RUID  SUID  EGID  RGID  SGID CMD
28793  1000  1000  1000  1000  1000  1000 -/bin/bash
...

下にSTANDARD FORMAT SPECIFIERS マニュアルページから:

euid        EUID      effective user ID (alias uid).
euser       EUSER     effective user name.  This will be the textual
                      user ID, if it can be obtained and the field
                      width permits, or a decimal representation
                      otherwise.

など。

FreeBSDpsmacOSに付属のandは、svuid有効なUIDとGID(またはそれ以外)のみを知っており、これを表します。svgidsuidsgiduidgideuidegid

Linuxではあまり使用されていませんが、ファイルシステムアクセスUIDとGIDもあります(参照:setfsuid(2))。これに対する指定子はfuid/fsuidfgid/ですfsgid

/proc/$pid/statusそれらも含まれています。参考proc(5)

おすすめ記事