Linux の基礎知識

【Linuxの基礎知識】アカウント(ユーザー、グループ、パスワード)の設定をしてみよう!

2020年4月10日

Linux上ではユーザー、パスワード、及び所属するグループの設定を任意に変更できたり、削除したりできます。

本記事では実施方法を解説していきますので、ぜひ理解を深めていきましょう。

また、これらの設定を誤るとログインできなくなったり、予期せぬ動作を引き起こすので、実際に試すときは細心の注意を払うようにしましょう。

ユーザーアカウントを操作する

業務用としてLinuxが採用されるとき、その最も主な使いみちはサーバー用途が挙げられます。

社内状況にもよりますが、自社内でサーバーを利用する場合、メールサーバーやファイルサーバーといった使い方が想定されるわけですが、こうしたサーバーの管理はシステム管理部門の仕事というのが一般的といえます。

このような場合において、システム管理部門、もしくはそれに準ずる所属以外の社員が社内のサーバーに対して意図しない動作を起こさせないために、ユーザーの所属やそのユーザーごとに行える、操作の権限を予め付与しておく必要があります。

ユーザーを登録する「useradd

新規ユーザーを登録するには「useradd」コマンドを使用します。

コマンドの書式

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

コマンドの主なオプション

  • -m(--create-home):
    ユーザーのホームディレクトリが存在しない場合、作成する
  • -M(--no-create-home):
    ユーザーのホームディレクトリを作成しない
  • -b(--base-dir BASE_DIR):
    ホームディクトリのベースとなるディレクトリ(/homeなど)
  • -d(--home-dir ディレクトリ)
    ユーザーのホームディレクトリ(通常はユーザー名と同じにする
  • -k(--skel ディレクトリ)
    ひな型ディレクトリ(デフォルトは/etc/skel)を指定する
  • -u(--uid ユーザーID)
    作成するユーザーのユーザーIDを指定する
  • -g(--gid グループ)
    ユーザーが属するプライマリグループの名前またはグループIDを指定する
  • -G(--groups リスト)
    ユーザーが属するセカンダリグループのリストを指定する(「,」区切りで指定)
  • -U(--user-group)
    ユーザーと同じ名前のグループを作成する
  • -N(--no-user-group)
    ユーザーと同じ名前のグループを作成しない
  • -s(--shell シェル)
    ユーザーのログインシェル(フルパスで指定)を指定する
  • -p(--password パスワード)
    cryptで暗号化されたログインパスワードを利用できるようにする
  • -e(--expiredate 日付)
    ユーザーのアカウントが期限切れとなる日付を指定する
  • -c(--comment コメント)
    /etc/passwdのコメント欄の内容を指定する
  • -f(--inactive 日数)
    ユーザーのパスワードが期限切れになってからアカウントが無効化されるまでの日数

ここでは、ユーザー名「hoge」を登録してみます。

# useradd  hoge

オプションを指定せずにユーザーを作成した場合、下記に挙げるいくつかの環境変数へデフォルト値が代入されます。

  • SHELL=「/bin/bash」(デフォルト)
  • HOME=「/home/hoge」(デフォルト)
  • LANG=「ja_JP.UTF-8」(デフォルト)
  • etc・・・

詳しくは、ユーザー作成後、「$ env」コマンドで確認してみてください。

ユーザー「hoge」の作成が完了しました。

ユーザーパスワードを変更する「passwd

パスワードを変更するには、「passwd」コマンドを使用します。

オプションを付与することにより、パスワードをの削除や変更を行うことが出来ます。

コマンドの書式

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

コマンドの主なオプション

  • -l ユーザー名:指定したユーザーをロックする
  • -u ユーザー名:指定したユーザーのロックを解除する
  • -d ユーザー名:パスワードを削除する
  • -S ユーザー名:パスワードの状態を表示する
  • -n 日数 ユーザー名:パスワード変更後、再度変更可能になるまでの日数を設定する
  • -x 日数 ユーザー名:パスワードが有効な日数を設定する
  • -w 日数 ユーザー名:パスワード失効前に警告を表示する日数を設定する
  • -i 日数 ユーザー名:パスワードが有効期限に達した後、パスワードを無効にするまでの猶予期間を設定する

ここではオプションを省略して、「hoge」のパスワードを変更してみます。
実行後、新しいパスワードの入力を2回求められるので、入力し、変更を完了させます。

# passwd hoge

パスワードが変更されました。

ユーザー設定を変更する「usermod

ユーザーに紐づく様々な設定を変更するには「usermod」コマンドを使用します。

変更する設定を指定する必要があるので、コマンドオプションは必ず必要となります

コマンドの書式

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

コマンドの主なオプション

  • -L(--lock):ユーザーをロックする
  • -U(--unlock):ユーザーのロックを解除する
  • -e(--expiredate付):アカウントが使用不能になる日付を指定する
  • -f(--inactive数):パスワードの使用期限切れから使えなくなるまでの日数を指定する
  • -l(--loginログイン名):ログイン名を変更する
  • -d(--homeス):ユーザーのホームディレクトリを変更する
  • -m(--move-home):現ホームディレクトリの内容を新たな場所に移動する
  • -R(--rootィレクトリ):「chroot」するディレクトリを指定する
  • -p(--passwordスワード):新たなパスワードを指定する
  • -s(--shellェル):ユーザーのシェルを変更する
  • -g(--gidループ):プライマリーグループを変更する
  • -G(--groupsループ):セカンダリーグループを変更する
  • -a(--append):オプションで指定したグループをセカンダリーグループに追加する
  • -u(--uidID):ユーザーIDを変更する
  • -o(--non-unique):一意でないユーザーを許可する
  • -c(--commentメント):コメント欄

ここではユーザー「hoge」のユーザIDを変更してみましょう。

# usermod -u 1234 hoge

ユーザIDが「1234」に変更されました。

ユーザー登録を抹消する「userdel

ユーザを削除するには、「userdel」コマンドを使用します。

コマンドの書式

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

コマンドの主なオプション

  • -r:対象ユーザーのホームディレクトリとメールスプールも同時に削除する

ユーザ「hoge」を削除し、同時に利用しているディレクトリも削除するには、下記のコマンドを実行します。

# userdel -r hoge

実行後、ユーザー:hogeに関する情報(パスワードファイルやホームディレクトリ等)が、同時に削除されました

グループを操作する

「group**」はユーザーが属する集団、つまり部門を意味すると考えると分かり易いでしょう。

たとえば「社内のファイルサーバーは全社員に使わせたいけれど、メールサーバーやウェブサーバーは、システム管理部門や広報部門など、一部のユーザーだけが使うようにしたい」といった場合には「groupadd」コマンドを使用します。

グループを追加「groupadd」

グループを追加するにはgroupaddコマンドを使用します。

コマンドの書式

groupadd[オプション] グループ名

コマンドの主なオプション

  • -g(--gid グループID):作成するグループのグループIDを指定する
  • -o(--non-unique):グループIDが同じグループの作成を許す
  • -f(--force):グループが既に存在していた場合、終了する(エラーにはならない)
  • -p(--password パスワード):暗号化されたログインパスワードを利用可能にする
  • -K(--key キー=値):/etc/login.defsに保存されている値を一時的に置き換える
  • -r(--system):システムアカウントを作成する

グループ番号(GID)が「5678」の番号のグループを追加してみます。

# groupadd -g 5678 newGroup

実行後、GID5678番のnewGroupが追加されます。

グループパスワードを変更をする「gpasswd

グループの管理(ユーザーの追加、削除、グループパスワードの削除など)をするには、gpasswdコマンドを使用します。

コマンドの書式

gpasswd[オプション] グループ

コマンドの主なオプション

  • -a(--add ユーザー):ユーザーをグループに所属させる
  • -d(--delete ユーザー):ユーザーをグループのメンバーから外す
  • -r(--delete-password):グループのパスワードを削除する
  • -R(--restrict):グループへのアクセスをメンバーのみに制限する
  • -A(--administrators ユーザー):グループの管理者を設定する
  • -M(--members ユーザー):メンバーのリストを設定する

指定したグループにユーザーを追加してみましょう。

# gpasswd -a newUser newGroup

指定したユーザが所属しているグループを表示するには「groups」コマンドを使用します。

グループを変更をする「groupmod

グループIDやグループ名を変更するには、「groupmod」コマンドを使用します。

コマンドの書式

groupmod[オプション] グループ名

コマンドの主なオプション

  • -n グループ名(--new-name グループ名):指定したグループ名に名前を変更する
  • -g グループID(--gid グループID):指定したグループIDに変更する
  • -p パスワード(--password パスワード):cryptで暗号化されたログインパスワードを利用できるようにする
  • -R ディレクトリ(--root ディレクトリ):指定したディレクトリに変更を適用し、そのディレクトリにある構成ファイルを使用する

グループ名「newGroup」を「changeGroup」というグループ名に変更しみましょう。

# groupmod -n changeGroup newGroup

実行後、グループ「newGroup」は「changeGroup」というグループ名に変更されました。
もともと「newGroup」に所属していた「newUser」のグループも「changeGroup」変更されています。

グループを削除する「groupdel

グループを削除するには、「groupdel」コマンドを使用します。

コマンドの書式

groupdel [オプション] グループ名

コマンドの主なオプション

  • -R(--root ディレクトリ):chrootするディレクトリ
  • -f(--force):既存ユーザーのプライマリグループでも削除する

登録されているグループ「changeGroup」を削除します。

# groupdel changeGroup

実行後、削除が完了します。

アクセスを許可するグループを設定する「chgrp

ファイルやディレクトリへアクセス許可するグループを設定するには、「chgrp」コマンドを使用します。

コマンドの書式

chgrp [オプション] 新しい所有グループ ファイル1 ファイル2…

コマンドの主なオプション

  • -R(--recursive):ファイルとディレクトリを再帰的に変更する
  • -h(--no-dereference):
  • -v(--verbose):処理した内容を出力する
  • -c(--changes):変更が行われた場合のみ処理内容を出力する
  • -f(--silent):ほとんどのエラーメッセージを出力しない

オプション「-c」を利用し、実行結果を表示してみましょう。

# chgrp -c changeGroup test.sh

「test.sh」のグループを newGroup から changeGroup へ変更しました
実行結果から分かる通り、該当ファイルの所有ユーザーが変更されました。

まとめ

まとめ

この記事では、ユーザー、パスワード、グループの設定の登録や変更、及び削除を解説しました。これらの操作は頻繁に行うものではありませんが、いざというときに使用できるよう、覚えておくのが良いでしょう。

よく読まれている記事

1

独立前は、誰もが不安でいっぱい。近い将来、フリーランスとして独立を考えている方が独立初期に躓かないために「独立前にやるべきことチェックリスト」をご紹介します。 当記事は前編となる「お金まわり編」。全て ...

2

ゲームなどのエンタメ分野での導入が進んでいるVR。言葉自体は耳にしたことがあっても、その意味を詳しく知らないという人も多いのではないでしょうか。また、次世代の新たな技術をビジネスに積極的に活用していく ...

3

フリーランスの確定申告には、青色申告と白色申告の2種類があります。いったいどちらの申告方法を選ぶべきなのでしょうか。 この記事では、青色申告と白色申告、それぞれのメリット・デメリットを把握することでベ ...

4

フリーランスの仕事場は、自宅をはじめとし、カフェや図書館、コワーキングスペースなど自由に選べます。しかし全ての場所で100%集中ができるどうかは、人それぞれです。どのような環境が自身の仕事場として快適 ...

5

フリーランスのITエンジニアとして、一番難しいのは「自己管理」と言えるでしょう。 自分の体調管理はもとより、仕事のスケジュール等すべて自分で管理します。もちろんフリーランスに有給休暇等ありませんから休 ...

-Linux の基礎知識

Copyright© Beエンジニア , 2020 All Rights Reserved.