ユーザIDを抽出する


アニメ『ID-0』
ロボット?アニメです。Iマシンというロボットに人間の意識データを転送させて、ロボットを操る仕組み、まあ魂がロボットに移るような仕組みで、ロボットになってから痛みを感じます。
戻る肉体がないと、永遠にロボットのまま生きることができるようです。こんな技術があったら、何もロボロボしているロボットじゃなくとも、人間そっくりのロボットでいいような気もします。

このアニメは人間も3Dで描かれていますが、3Dになると、みんな似たような顔になるのかと思いきや、さすがです。一人一人顔が違います。目の色を変えておしまい、とかではなく、目の形が違うんですよね。

今回はユーザIDについてです。ユーザアカウントは、別々のユーザ名でもありますが、IDも異なります。idコマンドを使うと、ユーザID、グループIDが確認できます。
確認してみましょう。一般ユーザはuidが1000番以降が割り振られています。(Debian)

takk@deb8:~$ id
uid=1000(takk) gid=1000(takk) groups=1000(takk),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),108(netdev),111(scanner),123(lpadmin)
takk@deb8:~$ 

rootは、必ずuidが0となります。

takk@deb8:~$ su -
パスワード:
root@deb8:~# id
uid=0(root) gid=0(root) groups=0(root)
root@deb8:~# 

/etc/passwdファイルは、ユーザアカウントの情報が一行に位置アカウントずつ格納されていますが、
uidが1000番以降が一般ユーザなので、1000以降で抽出すればよいです。

takk@deb8:~$ cat /etc/passwd | grep ':[1-9][0-9][0-9][0-9]:'
takk:x:1000:1000:takk,,,:/home/takk:/bin/bash
takk2:x:1001:1001::/home/takk2:/bin/sh
takk@deb8:~$ 

ユーザを追加して、再度grepしてみます。

takk@deb8:~$ sudo useradd test1
[sudo] password for takk: 
takk@deb8:~$ cat /etc/passwd | grep ':[1-9][0-9][0-9][0-9]:'
takk:x:1000:1000:takk,,,:/home/takk:/bin/bash
takk2:x:1001:1001::/home/takk2:/bin/sh
test1:x:1002:1003::/home/test1:/bin/sh
takk@deb8:~$ 

追加されたユーザtest1も表示されました。

一方、グループIDは、/etc/groupファイルに格納されています。
同じく1000以降を抽出してみます。

takk@deb8:~$ cat /etc/group | grep ':[1-9][0-9][0-9][0-9]:'
takk:x:1000:
takk2:x:1001:
person1:x:1002:
test1:x:1003:
takk@deb8:~$ 

グループperson1を削除して再度抽出してみます。

takk@deb8:~$ sudo groupdel person1
takk@deb8:~$ cat /etc/group | grep ':[1-9][0-9][0-9][0-9]:'
takk:x:1000:
takk2:x:1001:
test1:x:1003:
takk@deb8:~$ 

person1が削除されました。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA