Linuxのユーザ、グループについて整理しておく
Linuxでは、各ファイルおよびディレクトリについて、どのユーザが読み・書き・実行できるかを設定する。
まずは、「どのユーザ」にあたる部分の選択肢を網羅的に把握する。
概念
ユーザ
- /etc/passwd ファイルに下記の形式で保存されている
ユーザ名:x(※以前は暗号化されたパスワードだった):ユーザID(UID):プライマリグループID(GID):コメント:ホームディレクトリ:デフォルトシェル
例:
user01:x:500:500:first user:/home/user01:/bin/bash
- /etc/passwd ファイルはプレーンファイルで、一般ユーザも読み出し可能
- セキュリティの観点からパスワードだけは、rootしか読み出しできない /etc/shadow ファイルに保存される。(シャドウパスワード)
ユーザ名:暗号化されたパスワード:1970/01/01からPWD変更日までの日数:変更可能最短期間:未変更可能最長期間:警告開始日:インアクティブ日数:失効までの日数:(未使用)
- ユーザは一つのプライマリグループと複数のサブグループに属することができる
- ファイル等作成時に所有グループとしてデフォルト設定されるグループはプライマリイグループである
- ユーザ作成時のデフォルトのグループ割り当てはディストリビューションによって異なる
グループ
- /etc/group ファイルに下記の形式で保存されている
グループ名:x(※以前は暗号化されたパスワードだった):グループID(GID):グループメンバ(※カンマ区切り。グループ名と同じユーザ名をもつユーザは含まれない)
例:
staff:x:500:user01,user02
- パスワードはユーザと同様に別ファイル /etc/gshadow に保存される
- グループへのログイン(プライマリグループの切り替え)も可能
- ログイン中のユーザが対象のグループに所属している場合はパスワード不要
- グループに所属していないユーザは、対象のグループにパスワードが設定されていない場合はログインできない
操作
追加・編集・削除・確認・切替のコマンドについて、頻用オプションを添えて記載する。(※Ubuntuについて記載)
なお、アカウント管理コマンドは root (またはsudo)でしか実行できない。
ユーザ
- useradd [オプション] ユーザ名
- -c コメント : コメント指定
- -d ディレクトリ : ホームディレクトリ指定
- -g グループ名orGID : プライマリグループ指定(※未指定の場合、ユーザ名と同じ名前のグループ)
- -G グループ名orGID : サブグループ指定
- -k ディレクトリ : ひな形ディレクトリの指定
- -m : ホームディレクトリを作成する
- -M : ホームディレクトリを作成しない(※デフォルト)
- -N : ユーザ名と同じ名前のグループを作成しない
- -p パスワード : パスワード(crypt(3)にて暗号化済みのパスワード)指定
- -s : ログインシェル指定
- -u : UID指定
- -U : ユーザ名と同じ名前のグループを作成する(※デフォルト)
- -D : デフォルトの設定値の表示 or 設定
- ※ /etc/skel ディレクトリ以下のファイルがひな形としてホームディレクトリ以下にコピーされる
例:
sudo useradd -u 3000 -U -G group1 -c "group1 developser" -m -d /home/user1 -s /bin/bash user1
- usermod [オプション] ユーザ名
- 上記の大半のオプションを使用可能
- -G グループ名リスト -a : 所属するサブグループの追加
- -L : パスワードロックによりアカウントを一時的に無効化
- -U : パスワードロックの解除
- passwd [オプション] [ユーザ名] ※パスワードの変更。root以外も自身のパスワードは変更可能
- -d : パスワードの削除
- -l : パスワードロックによりアカウントを一時的に無効化
- -u : パスワードロックの解除
- -S : パスワード状態の表示
<L:ロック,NP:パスワード設定なし,P:パスワード使用可能> <パスワード変更日> <最短期限> <最長期限> <警告期間> <使用不能期間>
- chpasswd ※パスワードを一括変更
例:
sudo chpasswd <<EOF user01:user01pwd user02:user02pwd EOF
- userdel [オプション] ユーザ名
- -r : ホームディレクトリも削除する
- id [オプション] [ユーザ名] ※ユーザ情報の確認
- su [オプション] [ユーザ名]
- - : そのユーザのシェル環境を使用する
グループ
例:
sudo groupadd -g 2001 guest
- groupmod [オプション] グループ名
- gpasswd [オプション] グループ名
- -a ユーザ名 : グループに所属するメンバにユーザを追加する
- -M ユーザ名リスト : グループに所属するメンバのリストを設定する
- -A ユーザ名リスト : グループの管理者のリストを設定する
- groupdel グループ名
- ※あるユーザのプライマリグループとして設定されているグループは削除できない
- ※サブグループとして設定されているグループが削除されると、ユーザ情報側からもそのグループに所属していたという情報が削除される
- getent group ※グループ情報の確認
- newgrp グループ名 ※プライマリグループの切替
参考文献
Linux教科書 LPICレベル1 第4版 (CD-ROM付)
- 作者: 中島能和,濱野賢一朗
- 出版社/メーカー: 翔泳社
- 発売日: 2009/05/13
- メディア: 単行本(ソフトカバー)
- 購入: 15人 クリック: 166回
- この商品を含むブログ (26件) を見る