目次
Linux ユーザー・グループ管理
新規ユーザーの作成
useradd / passwd コマンド
ユーザーを追加する。
$ sudo useradd hogeuser
追加した新規ユーザーのパスワードをする。
$ sudo passwd hogeuser ユーザー hogeuser のパスワードを変更。 新しいパスワード: ******** <- パスワードを入力 新しいパスワードを再入力してください: ******** <- パスワードを再入力 passwd: 全ての認証トークンが正しく更新できました。
adduser / gpasswd コマンド
ユーザーを追加する。
$ sudo adduser hogeuser
グループの作成
$ sudo groupadd wwwusers
ホームディレクトリを指定する場合
$ sudo useradd -d /var/www/username username
UID、GIDを指定してユーザー、グループを作成
$ sudo groupadd -g 5000 hogegroup $ sudo useradd -u 5000 -g hogegroup hogename
ユーザーを管理者グループに所属させる場合
$ sudo gpasswd -a username wheel
ユーザーをグループに所属させる
- UID、GID、グループの所属状況を確認する。
$ sudo id hogeuser
uid=503(hogeuser) gid=503(hogeuser) 所属グループ=503(hogeuser)
- ユーザーをグループに追加 (-a) する。
$ sudo usermod -a -G wwwusers hogeuser
※複数グループに追加 (-a) する場合は以下のように','で区切って複数指定する。
$ sudo usermod -a -G wwwusers,grp2users,grp3users hogeuser
- ユーザーが指定したグループに所属していることを確認する。
$ sudo id hogeuser
uid=503(hogeuser) gid=503(hogeuser) 所属グループ=503(hogeuser),504(wwwusers)
使い方
$ usermod -h
使い方: usermod [オプション] LOGIN オプション: -a, --append ユーザを (-G で指定された) 補助グループ群 GROUPS に追加する。他のグループからの削除は 行わない。 -b, --badname allow bad names -c, --comment COMMENT GECOS フィールドの値を再設定する -d, --home HOME_DIR ユーザアカウントのホームディレクトリを 再設定する -e, --expiredate EXPIRE_DATE アカウント期限切れの日を EXPIRE_DATE にする -f, --inactive INACTIVE パスワードを期限切れ後に無効化する日数を INACTIVEにする -g, --gid GROUP 主グループを GROUP に変更する -G, --groups GROUPS 新たな補助グループのリストを与える -h, --help このヘルプを表示して終了する -l, --login NEW_LOGIN ログイン名を変更する -L, --lock このユーザアカウントをロックする -m, --move-home 現ホームディレクトリの内容を新たな場所に 移動する (-d が指定された場合のみ) -o, --non-unique 一意でないユーザ (UID の重なるユーザ) を 許可する -p, --password PASSWORD 新たな暗号化済みパスワードを与える -P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files -r, --remove remove the user from only the supplemental GROUPS mentioned by the -G option without removing the user from other groups -R, --root CHROOT_DIR chroot するディレクトリ -s, --shell SHELL ユーザのシェルを新たに SHELL にする -u, --uid UID このユーザの UID を変更する -U, --unlock このユーザアカウントのロックを解除する -v, --add-subuids FIRST-LAST add range of subordinate uids -V, --del-subuids FIRST-LAST remove range of subordinate uids -w, --add-subgids FIRST-LAST add range of subordinate gids -W, --del-subgids FIRST-LAST remove range of subordinate gids -Z, --selinux-user このユーザアカウントへの新規 SELinux ユーザマッピング --selinux-range SERANGE new SELinux MLS range for the user account
ファイルやフォルダのグループを変更する
- ファイルやフォルダのグループを変更する。
$ sudo chgrp wwwusers /var/www/public_html
- 必要に応じてグループのパーミッションも変更する。
$ sudo chmod 775 /var/www/public_html
ユーザーの削除
ユーザーとホームディレクトリの削除を行う。
$ sudo userdel -r hogeuser
グループの削除
以下のコマンドを実行して、不要グループの削除を行う。
$ sudo groupdel wwwusers
/etc/passwd ファイルの形式
このファイルにはプログラムなどから参照するためのユーザー情報が格納されている。
$ cat /etc/passwd 〜省略〜 hogeuser:x:503:503:hoge comment:/home/hogeuser:/bin/bash
データ | hogeuser: | x: | 503: | 503: | hoge comment: | /home/hogeuser: | /bin/bash |
---|---|---|---|---|---|---|---|
説明 | ユーザー名 *1 | パスワード *2 | ユーザーID (UID) *3 | プライマリ グループID(GID) *4 | ユーザーID 情報 *5 | ホーム ディレクトリ *6 | シェル/ コマンド *7 |
*1 システムにログインするときにユーザーが入力する名前。
*2 シャドーパスワードを利用している場合は x が設定され、暗号化されたパスワードが /etc/shadow に格納される。
*3 各ユーザーにはユーザーID(UID)を割り当てる必要がある。
アクセス権を確定するときに OS やプログラムなどで使用されます。
UID 0 は root 用に、1〜99はその他の定義済みアカウント用に予約されている。
*4 プライマリ グループID(GID)を設定する。(/etc/group に定義済みのGID)
*5 コメント列。ユーザーのフルネームや電話番号などの追加情報を格納する。fingerコマンドがこのフィールドを利用する。
*6 ユーザーのログイン直後の初期ディレクトリを絶対パスで設定する。
*7 /bin/bash などシェルの絶対パスを設定する。シェルである必要はなく通常のコマンドでも良い。
参考文献
Understanding /etc/passwd File Format
Red Hat Enterprise Linux 固有の情報
/etc/group ファイルの形式
このファイルにはプログラムなどから参照するためのグループ情報が格納されている。
$ cat /etc/group 〜省略〜 hogeuser:x:503:jiro,goro
データ | hogeuser: | x: | 503: | jiro,goro |
---|---|---|---|---|
説明 | グループ名 *1 | パスワード *2 | グループID (GID)*3 | グループ リスト *4 |
*1 ls コマンドを実行した際に、そのグループ列に表示される。
*2 シャドーパスワードを利用している場合は x が設定され、暗号化されたパスワードが /etc/gshadow に格納される。
*3 各グループにはグループID(GID)を割り当てる必要がある。
アクセス権を確定するときに OS やプログラムなどで使用されます。
*4 グループのメンバーであるユーザー名のリストをカンマ区切りで設定する。