====== 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 などシェルの絶対パスを設定する。シェルである必要はなく通常のコマンドでも良い。\\ \\ **参考文献**\\ [[http://www.cyberciti.biz/faq/understanding-etcpasswd-file-format/|Understanding /etc/passwd File Format]]\\ [[http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-isa-ja-4/s1-acctsgrps-rhlspec.html|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 グループのメンバーであるユーザー名のリストをカンマ区切りで設定する。\\ \\ ===== 参考文献 ===== [[http://www.cyberciti.biz/faq/understanding-etcgroup-file/|Understanding /etc/group File]]\\ [[http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-isa-ja-4/s1-acctsgrps-rhlspec.html|Red Hat Enterprise Linux 固有の情報]]\\ [[https://www.howtogeek.com/50787/add-a-user-to-a-group-or-second-group-on-linux/|Add a User to a Group (or Second Group) on Linux]]\\