この記事について
LinuC101に半年くらい前に合格したので、その時に対策でとったメモ。ユーザー・グループの管理にかかわるコマンドをまとめている。
関連コマンド
コマンド | 説明 |
---|---|
passwd | ユーザのパスワードを変更 |
chage | パスワードの有効期限を設定 |
useradd | ユーザを新規作成 |
userdel | ユーザを削除 |
usermod | 既存のユーザアカウントの設定を更新 |
groupadd | 新しいグループアカウントを追加 |
groupdel | 既存のグループアカウントを消去 |
groupmod | 既存のグループアカウントの設定を更新 |
id | ユーザのUIDやGIDを出力 |
groups | ユーザが属するグループを表示 |
gpasswd | グループのパスワードや所属メンバーを設定 |
ユーザ・グループ管理ファイル
/etc/passwd
ユーザーアカウント情報が保存されるファイル。プレーンテキストで、各種ページャなどで閲覧可。
書式・フィールド
{ユーザー名}:{パスワード(x)}:{ユーザーID}:{グループID}:{グループID1},{グループID2},...:{GECOS}:{ホームディレクトリ}:{ログインシェル}
# 例
newuser:x:1000:1000:,,,:/home/newuser:/bin/bash
項目 | 説明 | |
---|---|---|
1 | ユーザー名 | ユーザー名 |
2 | パスワード | 暗号化されたパスワード(現在は利用されていない。代わりに /etc/shadow のシャドウパスワードが利用される・後述) |
3 | ユーザーID | ユーザーID |
4 | グループID | メイングループとして指定されるグループID(後述) |
5 | GECOS | コメント |
6 | ホームディレクトリ | ユーザーのホームディレクトリ(~/) |
7 | ログインシェル | ログインしたときにシェルとして起動するプログラム(bash, zshなど) |
/etc/group
グループアカウント情報が保存されるファイル。/etc/passwd
ファイル同様各種ページャなどで閲覧可。
書式・フィールド
{グループ名}:{パスワード(x)}:{GID}:{グループメンバー}
# 例(ユーザーqnqはsyslogグループにサブグループとして登録されている)
syslog:x:110:qnq
項目 | 説明 | |
---|---|---|
1 | グループ名 | システムで一意である必要あり |
2 | パスワード | 暗号化されたパスワード(シャドウパスワード: x) |
3 | GID | GroupID. グループのID。 |
4 | グループメンバー |
サブグループとして登録されているユーザー一覧を記載 →複数メンバがいる場合、 , で区切り |
プライマリグループとサブグループ
-
プライマリグループ:ファイル/ディレクトリを作成したときに所有グループとしてデフォルトで適用されるグループ。
/etc/passwd
に記載。 -
サブグループ:プライマリグループ以外にユーザーが所属しているグループ。
/etc/group
に記載。
/etc/shadow
第二フィールドに暗号化されたパスワードが記録されている。
フィールド
ユーザ名:パスワード:日数1:日数2:日数3:日数4:日数5:日数6:フラグ
# 例
qnq:xxxxxxxxxxxxxxxxxxxxxxxx:22222:0:99999:123:::
カラム名 | 説明 |
---|---|
ユーザ名 | 一意のユーザ名(/etc/passwdと同様) |
パスワード | 暗号化されたパスワード |
日数1 | 1970/1/1から、パスワードが最後に更新された日までの日数 |
日数2 | パスワードが変更できるようになるまでの日数 |
日数3 | パスワードを変更しなければならなくなる日までの日数 |
日数4 | パスワードの有効期限が切れる前に警告をだす日数 |
日数5 | パスワードの有効期限切れからアカウントが使用できなくなるまでの日数 |
日数6 | 1970/1/1から、アカウントが使用できなくなる日までの日数 |
フラグ | 未使用 |
ユーザ操作コマンド
useradd
書式
useradd [options] {ユーザー名}
オプション
項目 | 説明 |
---|---|
-m | ホームディレクトリを自動作成(Debian系ディストリビューション) |
-D | デフォルトの設定値を表示・設定 |
-c {コメント} | Comment. コメント |
-d {パス} | Directory. ホームディレクトリのパス |
-g {グループ名/GID} | GID. プライマリグループを指定 |
-G {グループ名/GID} | GID. サブグループを指定 |
-s {パス} | Shell. デフォルトシェルのパス |
実行例
-m
オプションを指定しないと、ホームディレクトリが作成されない。
usermod
書式
usermod [options] {ユーザー名}
オプション
項目 | 説明 |
---|---|
-L | Lock. パスワードをロックして一時的に無効化 |
-U | Unlock. パスワードのロックを解除 |
-aG {グループ名/GID} | Append. 現在のサブグループ設定を維持しつつ追加 |
-p {暗号化されたパスワード} | Password. 暗号化済みのパスワードを設定 |
-c {コメント} | Comment. コメント |
-d {パス} | Directory. ホームディレクトリのパス |
-g {グループ名/GID} | GID. プライマリグループを指定 |
-G {グループ名/GID} | GID. サブグループを指定 |
-s {パス} | Shell. デフォルトシェルのパス |
実行例
↓ユーザーをロックすると、 /etc/shadow
のパスワード直前に !
が挿入される。
# grep newuser /etc/shadow
newuser:$6$(...):20168:0:99999:7:::
# usermod -L newuser
# grep newuser /etc/shadow
newuser:!$6$(...):20168:0:99999:7:::
# usermod -U newuser
# grep newuser /etc/shadow
newuser:$6$(...):20168:0:99999:7:::
#
/etc/shadow
/etc/passwd
のパスワードフィールドの1文字目に !
または *
を追加することで、-Lと同等にロックが可能。
userdel
書式
userdel [options] {ユーザー名}
オプション
項目 | 説明 |
---|---|
-r | ホームディレクトリも同時に削除 |
-f | —force |
passwd
パスワードを変更する。
書式
passwd [options] {ユーザー名}
オプション
項目 | 説明 |
---|---|
-l | Lock. パスワードをロックして一時的に無効化 |
-u | Unlock. パスワードのロックを解除 |
passwd では usermod と同様にロック操作ができるが、オプションは小文字である点が異なる。
グループ操作コマンド
gpasswd
グループのパスワードや所属メンバーを設定
gpasswdは「/etc/group」を管理するコマンド。グループのパスワードや所属するメンバーなどを設定できる。
書式
gpasswd [options] {グループ}
オプション
項目 | 説明 |
---|---|
-a {ユーザー名} | Add. 指定ユーザーをグループに所属させる |
-d {ユーザー} | Delete. 指定ユーザーをグループメンバから除外する |
-r | グループパスワードを削除する |
使用例
ユーザtestをサブグループsalesから削除する。
# gpasswd -d test sales
groupadd
グループを追加する
書式
# グループ追加
groupadd {グループ名}
groupmod
グループ設定を変更する
書式
# グループ変更
groupmod [options] {グループ名}
オプション
項目 | 説明 |
---|---|
-g {GID} | GID. GIDの変更 |
-n {グループ名} | Name. グループ名の変更 |
実行例
-nオプションを併用してグループ名を変更:
groupdel
グループを削除する
書式
# グループ削除
groupdel {グループ名}
groups
現在のグループ名とグループ名のID値を表示。
ユーザ名と、ユーザの所属する全グループのグループ名について確認できる。
実行例
ユーザーnewuser
に対して新しく作成したグループnewgroup
を差グループとして割り当てた。
その他ユーザー/グループ関連コマンド
id
指定したユーザーまたは現在のユーザの詳細を出力。
書式
id [{options}] [{username} ...]
オプション
項目 | 説明 |
---|---|
-u | UIDを表示 |
-g | プライマリグループのGIDを表示 |
-G | 所属するすべてのGIDを表示 |
出力内容
以下の表では「表現(例)」列の太字部が「出力内容」列に一致する。
出力内容 | 表現(例) |
---|---|
ユーザ名 | uid=1001(newuser) |
UID | uid=1001(newuser) |
グループ名 | gid=1001(newuser) |
GID | gid=1001(newuser) |
所属グループ(groups) | groups=1001(newuser),1002(newgroup) |
実行例
UIDが1001のnewuser
はGIDが1001のnewuser
グループにメイングループとして所属しており、1002のnewgroup
にサブグループとして所属している。
getent
指定した対象(ユーザまたはグループ)の情報を出力。 /etc/passwd
, /etc/group
と同様のフォーマットで出力。
書式
getent { passwd | group }
オプション
オプション | 説明 |
---|---|
passwd | ユーザー情報の出力 |
group | グループ情報の出力 |
実行例1(ユーザ情報の出力)
実行例2(グループ情報出力)
実行例3(オプションなし・エラー)
オプションを指定しないとエラーになる。
参考
- Linux教科書 LPICレベル1 Version5.0対応:中島 能和, 濱野 賢一朗
https://www.amazon.co.jp/Linux%E6%95%99%E7%A7%91%E6%9B%B8-LPIC%E3%83%AC%E3%83%99%E3%83%AB1-Version5-0%E5%AF%BE%E5%BF%9C-%E4%B8%AD%E5%B3%B6-%E8%83%BD%E5%92%8C/dp/4798160490 - Ping-t「最強WEB問題集」
https://mondai.ping-t.com/g - "【 id 】コマンド――ユーザーの識別情報を表示する:Linux基本コマンドTips(228)", @IT (2025-03-21アクセス)
https://atmarkit.itmedia.co.jp/ait/articles/1808/02/news027.html - "【 gpasswd 】コマンド――ユーザーが所属するグループを管理する:Linux基本コマンドTips(72)", @IT (2025-03-21アクセス)
https://atmarkit.itmedia.co.jp/ait/articles/1612/12/news016.html