id - ユーザIDやグループIDを表示する

スポンサーリンク

idコマンドは指定したユーザのユーザIDやグループIDを確認できます。

ユーザが指定されていない場合はこのidコマンドを実行しているプロセスのユーザIDやグループIDを確認できます。

スポンサーリンク

idコマンドの構文

idコマンドの構文

userは文字列で表されたユーザの識別文字列、または数字で表されたユーザIDを指定します。

 

ユーザを調べる順番は、文字列で表されたユーザIDを調べた後に、数字で表されたユーザIDを調べます。そのため、文字列で表されたユーザIDに「1000」のようなユーザが存在するときに、数字で表されたユーザID「1000」を調べたい場合は、「+1000」のように指定します。

数字で表されたユーザID「1000」を確認する場合

 

 

 

idコマンドの利用例

ユーザIDの表示
(オプションなし)

idコマンドをオプションなしで実行した場合、(1)実ユーザID、(2)実グループID、(3)実効ユーザID(実ユーザIDと異なる場合に表示)、(4)実効グループID(実グループIDと異なる場合に表示)、(5)補助グループIDを表示します。

idコマンドのコマンドライン引数を省略した場合はidコマンドについて、実行しているプロセスのユーザID、グループID、補助グループIDを表示します。

コマンド例

実行結果

 

コマンド例

実行結果

 

また、idコマンドはユーザを指定できます。コマンド例では、ownerというユーザが存在した場合のコマンド例になります。

コマンド例(ユーザを指定した場合)

実行結果

 

実ユーザIDと実効ユーザID、実グループIDと実効グループIDは基本的に同じになります。
意味としては、実ユーザIDと実グループIDは実際に誰であるかを表します。そして、実効ユーザIDと実効グループIDはファイルのアクセス権限に関係します。
また、補助グループIDはユーザが所属しているグループでの追加のグループになります。
idコマンドの実効ユーザIDと実効グループIDの情報は、実ユーザIDと実効ユーザID、実グループIDと実効グループIDが異なる場合に表示されます。
実効ユーザIDと実効グループIDの情報の確認は、例えばidコマンドのプログラムをコピーし、その所有者情報を変更し、set-user-ID(SUID)やset-group-ID(SGID)を付与することで確認することができます。
実効ユーザIDと実効グループIDの情報の確認例
1.idコマンドのプログラムをカレントディレクトリにコピー

2.所有者情報の変更(ここではユーザとグループをrootに変更)

3.SUIDとSGIDの付与

4.所有者情報やアクセス権限の確認

5.コピーしたidコマンドで実行の確認(実行しているユーザはubuntuというユーザで、また見やすいようにsedコマンドで少し整形しています。)

上のidコマンドの結果でそれぞれ、
uidが実ユーザID(real user ID)、
gidが実グループID(real group ID)、
euidが実効ユーザID(effective user ID)、
egidが実効グループID(effective group ID)、
groupsが補助グループのID(supplemental group ID)になります。

 

 

 

ユーザIDのみを表示
(-uオプション)

-uオプションはユーザIDのみを表示します。

コマンド例

実行結果

 

 

 

グループIDのみを表示
(-gオプション)

-gオプションはグループIDのみを表示します。

コマンド例

実行結果

 

 

 

グループIDと補助グループIDを表示
(-Gオプション)

-GオプションはグループIDと補助グループIDを表示します。

コマンド例

実行結果

 

 

 

名前で表示
(-nオプション)

-nオプションは、-uオプション、-gオプションまたは-Gオプションと組み合わせて使用します。-nオプションを用いると数字でのIDではなく、名前でのIDを表示することができます。
コマンド例では、ユーザIDの名前を表示します。

コマンド例

実行結果

 

 

 

実ユーザIDまたは実グループIDを表示
(-rオプション)

-rオプションは、-uオプション、-gオプションまたは-Gオプションと組み合わせて使用します。-rオプションは、実ユーザIDまたは実グループIDを表示します。つまり、実ユーザIDまたは実グループIDがそれぞれ実効ユーザIDまたは実効グループIDと異なる場合に利用できます。

コマンド例では所有者情報を変更しSUIDとSGIDを付与したidコマンドのプログラムのコピーを利用しています。

コマンド例と実行結果

 

 

 

whoamiコマンド

whoamiコマンドは、現在のユーザ名を表示するコマンドで、「id -un」とほぼ等価なコマンドになります。このコマンドの由来は"who am i"で、「私は誰」というコマンドになります。
コマンド例では、「ubuntu」というユーザで実行しています。

コマンド例

実行結果

このコマンドはコマンドライン引数を取りません。

 

 

 

groupsコマンド

groupsコマンドは、補助グループを含むグループ名を表示するコマンドで、「id -nG」とほぼ等価なコマンドになります。コマンドライン引数を取らない場合は実行しているプロセスのユーザの補助グループを含むグループ名を表示します。

コマンド例

実行結果

 

また、groupsコマンドはidコマンドと違い、複数のユーザを引数に取ることができます。

コマンド例

実行結果

 

 

 

参考

GNU Coreutils: id invocation