0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linux:ユーザー・グループの管理

Posted at

この記事について

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など)

vipw コマンドでm /etc/passwd , /etc/shadow の編集が可能

1.png

-s オプションを付与することで、シャドウパスワードを変更可能。

/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. デフォルトシェルのパス

実行例

image.png

-mオプションを指定しないと、ホームディレクトリが作成されない。

ホームディレクトリのデフォルトファイル
/etc/skel は新規作成するホームディレクトリのテンプレートである。

image.png

usermod

書式

usermod [options] {ユーザー名}

オプション

項目 説明
-L Lock. パスワードをロックして一時的に無効化
-U Unlock. パスワードのロックを解除
-aG {グループ名/GID} Append. 現在のサブグループ設定を維持しつつ追加
-p {暗号化されたパスワード} Password. 暗号化済みのパスワードを設定
-c {コメント} Comment. コメント
-d {パス} Directory. ホームディレクトリのパス
-g {グループ名/GID} GID. プライマリグループを指定
-G {グループ名/GID} GID. サブグループを指定
-s {パス} Shell. デフォルトシェルのパス

実行例

3.png

↓ユーザーをロックすると、 /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と同等にロックが可能。

ログインシェルのみを変更したい場合には、 chsh も利用可能。

5.png

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オプションを併用してグループ名を変更:

6.png

groupdel

グループを削除する

書式

# グループ削除
groupdel {グループ名}

groups

現在のグループ名とグループ名のID値を表示。

ユーザ名と、ユーザの所属する全グループのグループ名について確認できる。

実行例

ユーザーnewuserに対して新しく作成したグループnewgroupを差グループとして割り当てた。

image.png

その他ユーザー/グループ関連コマンド

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にサブグループとして所属している。

image.png

getent

指定した対象(ユーザまたはグループ)の情報を出力。 /etc/passwd, /etc/group と同様のフォーマットで出力。

書式

getent { passwd | group }

オプション

オプション 説明
passwd ユーザー情報の出力
group グループ情報の出力

実行例1(ユーザ情報の出力)

9.png

実行例2(グループ情報出力)

10.png

実行例3(オプションなし・エラー)

オプションを指定しないとエラーになる。

11.png

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?