私はUbuntuにいます。
$ whoami
eugen
$ id
uid=1000(eugen) gid=1000(eugen) groups=1000(eugen),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),122(lpadmin),134(lxd),135(sambashare)
$ id eugen
uid=1000(eugen) gid=1000(eugen) groups=1000(eugen),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),122(lpadmin),134(lxd),135(sambashare),137(docker)
なぜそんなことですか?
答え1
docker
グループに自分自身を追加してまだログインしていないようです。したがって、id
以前のグループ(現在のユーザーが所有しているグループ)が表示され、現在のid eugen
グループがロードされeugen
ますdocker
。
答え2
id
プロセスの属性(euid、egid、および補足gid)は個別に報告され、クエリpasswd
/データベースを介して対応するgroup
ユーザー/グループ名に変換されます。
login
これらのIDは、実行中の親プロセスまたは同等のプロセスで設定され、init_group()
ログインしたユーザーのuidとグループを取得するために呼び出されます。
setuid/setgid アプリケーションを実行すると、euid または egid が変更されることがあります。
id eugen
クエリpasswd
/group
データベース。したがって、ユーザーが今すぐログインしたときに取得されるユーザーとグループIDと名前を表示できます。
setuid
/アプリケーションに加えて、segid
ログイン後にアカウントデータベースが変更された場合は異なる場合があります。