Linuxでuseraddコマンドを使ってユーザーを作成する方法【オプション徹底解説】
ポイント
- 新しいユーザーを追加する:useradd testコマンドを使用します(「test」が新しいユーザー名です)。十分な権限がない場合はsudo useradd testを実行します。
- ホームディレクトリ付きで作成する:sudo useradd -m testを使用します。デフォルト以外の場所に作りたい場合はsudo useradd -m -d /test testとします。
- パスワード設定とユーザー切り替え:パスワード設定はpasswd test、ユーザーの切り替えはsu - testコマンドを使います。
この記事では、Linuxのコマンドラインから「useradd」コマンドを使ってユーザーを作成する方法を詳しく解説します。ホームディレクトリを持つユーザーの作成、パスワードの設定、ユーザーの切り替え、アカウント有効期限の設定、新規ユーザーへの特定グループの割り当て、ログイン時のデフォルト設定の変更、ホームフォルダなしでのユーザー作成、ユーザーの氏名の登録、さらに特定ユーザーの詳細情報の確認まで、実務で役立つコマンドを網羅的に紹介します。
ユーザーを作成する方法
次のコマンドを実行すると、「test」という名前の新しいユーザーがシステムに追加されます。
ユーザーを作成する基本のコマンドは以下のとおりです。
useradd test
この操作には/etc/passwdへの書き込み権限が必要なため、通常はsudoを付けて実行します。
sudo useradd test
このコマンドを実行したときの実際の動作は、/etc/default/useraddという設定ファイルの内容によって決まります。
/etc/default/useraddの内容を確認するには、次のコマンドを実行します。
sudo nano /etc/default/useradd
この設定ファイルではデフォルトのシェルが定義されており、Ubuntuの場合はbin/shが設定されています。その他のオプションはすべてコメントアウトされた状態です。
コメントアウトされているオプションでは、デフォルトのホームフォルダ、グループ、パスワード失効後からアカウントが無効化されるまでの日数、デフォルトの有効期限などを設定できます。
ここで重要なのは、オプション(スイッチ)を付けずにuseraddコマンドを実行すると、ディストリビューションによって結果が異なる場合があるという点です。これはすべて、/etc/default/useraddファイルの設定内容によるものです。
補足:sudoユーティリティはすべてのディストリビューションにインストールされているわけではありません。インストールされていない場合は、ユーザー作成に必要な権限を持つアカウントでログインしてください。
ホームディレクトリ付きでユーザーを作成する方法
/etc/default/useraddファイルの設定によっては、ユーザーにホームディレクトリが割り当てられないことがあります。
ホームディレクトリの作成を強制するには、次のコマンドを使用します。
sudo useradd -m test
上記のコマンドを実行すると、ユーザー「test」用の/home/testフォルダが作成されます。
別の場所にホームディレクトリを作成する方法
デフォルト以外の場所にホームフォルダを作りたい場合は、-dスイッチを使用します。
sudo useradd -m -d /test test
上記のコマンドを実行すると、ルート直下に「test」というフォルダが作成され、ユーザー「test」のホームディレクトリとして設定されます。
補足:環境によっては-mスイッチを付けてもフォルダが作成されないことがあります。これは/etc/login.defsファイルの設定に依存します。
-mスイッチを指定しなくてもホームディレクトリを自動作成したい場合は、/etc/login.defsファイルを編集し、ファイルの末尾に次の1行を追加します。
CREATE_HOME yes
パスワードを設定する方法
ホームフォルダ付きでユーザーを作成したら、続いてパスワードを設定しましょう。
ユーザーのパスワードを設定するには、次のコマンドを使用します。
passwd test
passwdコマンドにより、testユーザーのパスワードを設定できます。実行すると、使用したいパスワードの入力を求められます。
ユーザーを切り替える方法
ターミナルウィンドウに次のように入力して、新しいユーザーアカウントをテストしてみましょう。
su - test
上記のコマンドでtestアカウントに切り替わります。ホームフォルダを作成済みであれば、そのユーザーのホームフォルダに移動した状態になります。
有効期限付きのユーザーを作成する
会社で短期間だけ勤務する契約社員向けのアカウントや、家族が一時的に滞在する場合のアカウントなど、有効期限付きのユーザーアカウントが便利です。期限が過ぎれば自動的にアカウントが無効になるため、後から手動で削除する手間が省けます。
ユーザー作成時に有効期限を設定するには、次のコマンドを使用します。
sudo useradd -m -e 2017-04-25 test
日付はYYYY-MM-DD形式で指定します。YYYYが年、MMが月、DDが日を表します。
ユーザーを作成してグループに割り当てる方法
新しい従業員が入社したときは、チームの他のメンバーと同じファイルやフォルダにアクセスできるよう、特定のグループに所属させるとよいでしょう。たとえば、Johnさんが経理担当として入社するケースを考えてみます。
次のコマンドを実行すると、johnがaccountsグループに追加されます。
sudo useradd -g accounts john
ログインのデフォルト設定を調整する
/etc/login.defsは、ログイン関連のデフォルト動作を定義する設定ファイルです。このファイルには重要な設定項目がいくつか含まれています。
/etc/login.defsファイルを開くには、次のコマンドを入力します。
sudo nano /etc/login.defs
login.defsファイルには多数の設定が含まれていますが、特に変更を検討したい主な項目は以下のとおりです。
- PASS_MAX_DAYS:パスワードが失効するまでの日数
- PASS_MIN_DAYS:パスワードを変更できる最小間隔(日数)
- PASS_WARN_AGE:パスワード失効前に警告が表示される日数
- LOGIN_RETRIES:ログイン失敗とみなすまでの試行回数
- LOGIN_TIMEOUT:ログインがタイムアウトするまでの時間
- DEFAULT_HOME:ホームフォルダが存在しない場合でもログインを許可するかどうか
補足:これらはあくまでデフォルト値であり、新しいユーザーを作成する際に個別に上書きすることも可能です。
パスワードの有効期限などを個別に指定する方法
ユーザー作成時に、パスワードの有効期限、ログイン再試行回数、タイムアウトなどを個別に設定できます。次の例では、パスワードの最大有効日数、失効前の警告日数、ログイン再試行回数を指定してユーザーを作成しています。
sudo useradd -m -K PASS_MAX_DAYS=5 -K PASS_WARN_AGE=3 -K LOGIN_RETRIES=3 test
ホームフォルダなしでユーザーを作成する方法
login.defsファイルにCREATE_HOME yesが設定されている場合、ユーザーを作成すると自動的にホームフォルダが作られます。
設定にかかわらずホームフォルダなしでユーザーを作成したい場合は、次のコマンドを使用します。
sudo useradd -M test
注意:-mが「ホームディレクトリを作成する」、-Mが「ホームディレクトリを作成しない」という意味であるため、大文字と小文字を混同しないよう気をつけましょう。
ユーザーの氏名(コメント)を指定する方法
ユーザー作成ポリシーとして、名前の頭文字+姓というユーザー名を採用している企業も多いでしょう。たとえばJohn Smithさんのユーザー名はjsmithになります。しかし、この命名規則ではJohn SmithさんとJenny Smithさんを見分けるのが難しくなることがあります。
アカウント作成時にコメントを付けておくと、ユーザーの本名を簡単に特定できます。コメントを追加するには、次のコマンドを実行します。
sudo useradd -m smithj -c "John Smith"
/etc/passwdファイルを確認する方法
ユーザーを作成すると、そのユーザーの情報は/etc/passwdファイルに追記されます。特定のユーザーの詳細を確認するには、grepコマンドを次のように使います。
grep smithj /etc/passwd
補足:上記のコマンドは、ユーザー名にsmithjを含むすべてのユーザーの情報を返します。
/etc/passwdファイルには、各ユーザーに関する情報がコロン区切りのフィールドとして格納されています。各フィールドは次のとおりです。
- ユーザー名
- 暗号化されたパスワード(常にxと表示されます)
- ユーザーID(UID)
- グループID(GID)
- ユーザーの氏名(フルネーム)
- ホームディレクトリ
- ログインシェル
多くのLinuxデスクトップディストリビューションにはユーザー作成用のGUIツールが用意されていますが、コマンドラインでの操作方法を覚えておけば、新しいインターフェースを学び直すことなく、どのディストリビューションでも同じスキルを活かせます。ぜひ本記事のコマンド例を参考に、実際に手を動かしてみてください。
-
Linuxの「echo」コマンドとは?基本構文から実用的な活用例まで徹底解説
Linuxを始めたばかりの方でも、長年Linuxデスクトップを使い続けている方でも、一見すると意味が分かりにくいコマンドがいくつか存在します。特にコマンドラインに触れる機会が少なかった方にとってはなおさらでしょう。しかし、Linuxやその他Unix系OSの真の力は、まさにそのコマンドラインの中にこそ秘められています。 その代表格とも言えるのが、古くから親しまれてきたechoコマンドです。一見すると何の役に立つのか分かりませんが、仕組みを理解してみると、意外なほど便利なコマンドであることが分かります。 echoコマンドは何をするもの? echoのマニュアルページを見ても、詳細な説明はほとんどあ
-
Linuxのteeコマンド使い方ガイド|画面表示とファイル保存を同時に実現
Linuxシェルでパイプやリダイレクトを使っているなら、teeコマンドの出番もきっとあるはずです。teeは「標準出力に表示しながら、同時にファイルにも書き込む」ことができる便利なユーティリティです。この記事では、teeコマンドの基本操作から、sudoとの組み合わせ、追記モード、エラー出力の扱い方まで、実例を交えながら詳しく解説します。 teeコマンドとは何をするもの? まず、次のようなコマンドを見てみましょう。 ls このコマンドは、現在のディレクトリの内容を表示します。つまり、標準出力(stdout)へ出力するわけです。標準出力とは通常、画面、正確には仮想端末のディスプレイのことです