gabuLog

趣味と考え事をつらつらと

ユーザの登録・変更・削除

ユーザの情報

ユーザの情報は/etc配下にある、passwd、shadow、group、gshadow、これらのファイルに記載されている。

passwdファイルの内容

ユーザのパスワードが格納されている。

システムのユーザであれば、誰でも確認可能。

/etc/passwdには6つの「:」で区切られた7つのフィールドから構成される行が追加される。

passwdのフィールド

passwdのフィールド

第1フィールド:ログイン名

第2フィールド:xまたは暗号化パスワード:ユーザID(shadowを使う場合は「x」、使わない場合は「暗号化パスワード」)

第3フィールド:ユーザID

第4フィールド:グループID

第5フィールド:コメント

第6フィールド:ホームディレクト

第7フィールド:ログインシェル

shadowファイルの内容

シャドウパスワードの仕組みで利用されている。

シャドウパスワードとはパスワードのデータを一般ユーザから見えないようにするための仕組み。

shadowファイルの内容確認

shadowファイルの内容確認

第1フィールド:ログイン名

第2フィールド:暗号化されたパスワード

第3フィールド:パスワードの変更最終日

第4フィールド:変更可能最短期間

第5フィールド:未変更可能最長期間

第6フィールド:未変更時警告日

第7フィールド:ログインしない場合に無効になる日数

第8フィールド:アカウントが失効になるまでの日数

第9フィールド:フラグ

useraddコマンド

useradd [オプション] [ユーザ名]

 
オプション 説明
-c コメント コメントの指定
-d ディレクトリパス ホームディレクトリの指定
-e 失効日 アカウント失効日の指定。

フォーマット:YYY-MM-DD(2022-12-31)

-f 日数 パスワードが失効してからアカウントが使えなくなるまでの日数
-g groupID 1次グループの指定
-G groupID 2次グループの指定
-k skel skelディレクトリの指定
-m ホームディレクトリを作成する。

/etc/login.defsで設定されていればなしでも作られる。

-M ホームディレクトリを作成しない。
-s シェルのパス ログインシェルの設定
-u UIDの指定 UIDの指定
-D デフォルト値の表示あるいは設定

新規ユーザを登録するには管理者が実行する必要がある。

オプションなしに実行した場合、/etc/default/useraddに記載されている設定が適応される。

/etc/default/useraddファイルの項目一覧
項目 説明
GROUP  
HOME 指定されたディレクトリの下にユーザ名のディレクトリを作成し、ホームディレクトリとする。
INACTIVE パスワードが失効してからアカウントが使えなくなるまでの日数。「-1」は無期限の意味。
EXPIRE アカウント失効日。値がない場合は無期限。
SHELL ログインシェル
SKEL 新規ユーザのホームディレクトリのテンプレート。/etc/skelのコピーが新規ユーザのホームディレクトリに作成される。
CREATE_MAIL_SPOOL /var/spool/mail/に新規ユーザ用のメール保存ファイルが作成される。

useraddコマンドの実行例

useraddコマンドの実行例

また、/etc/skelディレクトリ配下にあるファイルとディレクトリはuseraddコマンドを実行した時に自動的にユーザのホームディレクトリにコピーされる。

skelフォルダの内容確認

skelフォルダの内容確認

passwdコマンド

passwd [オプション] [ユーザ名]

passwdコマンドのオプション
オプション 説明 ユーザ
-d パスワードを期限切れにする

期限切れにされたユーザは次回ログイン時にパスワードの設定が必要

一般ユーザ・root
-e パスワードを削除 root
-i 日数 パスワードの有効期限が切れてから使用不能になるまでの日数を指定 root
-l ユーザのアカウントをロック root
-n 日数 パスワード変更が可能になる最小日数を指定 root
-u ユーザのアカウントロックを解除 root
-w 日数 パスワードの期限切れになる何日前から警告文を出すか指定 root
-x 日数 パスワード変更の最大日数を指定 root

パスワードの設定をするコマンド。

rootはユーザ名を指定してパスワードを変更することができるが、一般ユーザは自分のパスワードのみ。

passwdコマンドの実行例

passwdコマンドの実行例

userdelコマンド

userdel [オプション] [ユーザ名]

オプションrを付けて実行するとホームディレクトリも同時に削除する。

デフォルト実行すると/etc/passwd/etc/shadowのエントリのみ削除されホームディレクトリは削除されない。

usermodコマンド

usermod [オプション] [ユーザ名]

usermodコマンドのオプション
オプション 説明
-l 名前 ログイン名の変更
-d ホームディレクトリのパス ホームディレクトリの変更
-g groupID 1次グループの変更
-G 2次グループの変更
-s シェルのパス ログインシェルの変更

ユーザ情報を変更するためのコマンド。

usermod -l 新ログイン名 旧ログイン名 とすることでログイン名の変更可能。

まとめ

ユーザの登録・変更・削除の方法について記載しました。

パスワードの管理も重要なことなので管理者はこんなのあったなぐらいに覚えていれば、引き出すことができるかもしれません。