Linuxでユーザーを操作するまとめ
この記事は
ユーザー操作とかその周辺の作業をする時に使えるコマンド類のまとめです。Ubuntuでひと通りは動作を確認しています。
ずらずらと
ユーザーの一覧
現在システム上に存在するユーザー(デーモンとかも含む)を確認するには``/etc/passwd''を見れば良い。
$ cat /etc/passwd ----(略)---- hoge:x:1000:1000:hoge,,,:/home/hoge:/bin/bash ----(略)----
結果は必要な部分だけ抜き出してるので本当はいっぱい出てきます。1行につき1ユーザー記述されていて内訳は以下の通り
<user-name>:<pass-word>:<user-id>:<group-id>:<full-name>,,,:<home-directory>:<login-shell>
カンマが連続してるところはよくわからないですが重要ではなさそう。パスワードは大抵``x''になっているが、これはセキュリティ上の理由。別のファイルに暗号化されたパスワードが記録されているらしい。
ユーザーIDは``UID''と略されたりする
グループの一覧
今度は``/etc/group''を見れば良い
$ cat /etc/group ----(略)---- hoge:x:1000: ----(略)----
内訳は以下の通り
<group-name>:<pass-word>:<group-id>:<sub-group1>,<subgroup2>, ...
末尾のサブグループについては後述。グループIDは``GID''と略されたりする。
自分自身のUID/GIDを調べる
コマンドは以下の通り
$ id -a uid=1000(hoge) gid=1000(hoge) groups=1000(hoge),24(cdrom), ...
UIDとGIDはいいとして、groups以降は所属するグループ全てを表示している。gid=1000(hoge)はメイングループを、groups以降のhoge以外はサブグループを表している。ファイル作成時の所有ユーザーはメイングループが使用される。
新しくユーザーを作成
以下のコマンド
# adduser <user-name>
インタラクティブにいろいろ聞かれるがパスワードだけ埋めておけばOK。なお、引数をいろいろ与えることでUID/GIDを指定することもできるが、ここでは説明しない。
新しくグループを作成
以下のコマンド
# groupadd <group-name>
``-g''を付けることでグループIDを指定することがきでる。
自分自身のUID/GIDを変更
以下の通り
ユーザーIDを変更 # usermod -u <UID> メイングループを変更 # usermod -g <group-name>
なお、usermodで新しくサブグループに所属することもできるがちゃんと設定しないと既存のサブグループ設定が吹っ飛んで危険なので使うべきでない。
サブグループの追加と削除
追加で新しいサブグループに所属したい場合は以下のコマンド
新規に所属 # gpasswd -a <user-name> <subgroup-name> サブグループから外れる # gpasswd -d <user-name> <subgroup-name>
パスワード変更しかできなそうな名前のコマンドだが、グループ管理が可能なコマンドである。なお、passwdではユーザー管理はできない模様。