Linuxでユーザーを作成する方法 [useraddコマンドの15の例]

私たちは皆、Linuxでの‘useradd‘や‘adduser‘という最も人気のあるコマンドを知っています。時には、Linuxシステム管理者が特定のプロパティ、制限、またはコメントを持つユーザーアカウントをLinuxで作成するよう求められることがあります。

Linuxでは、‘useradd‘コマンドは、Linuxや他のUnix互換オペレーティングシステムでユーザーアカウントを追加または作成するための低レベルのユーティリティです。‘adduser‘コマンドは‘useradd‘コマンドと非常によく似ており、それは単にそれへのシンボリックリンクです。

一部のLinuxディストリビューションでは、‘useradd‘コマンドにはわずかに異なるバージョンがあるかもしれません。Linuxで新しいユーザーアカウントを作成する際に私たちの指示を使用する前に、ドキュメントを読むことをお勧めします。

Linuxターミナルで‘useradd‘コマンドを実行すると、次の主要なタスクが実行されます:

  • 新しく作成されたユーザーアカウントのために/etc/passwd/etc/shadow/etc/group,、および/etc/gshadowファイルを編集します。
  • 新しいユーザーのためのホームディレクトリを作成し、プルーフする。
  • ホームディレクトリへのアクセス許可と所有権を設定します。

ユーザーアド命令の構文

useradd‘コマンドの基本的な構文は次の通りです。

useradd [options] username

この記事では、Linuxで最も一般的に使用される15個の’useradd‘コマンドを実用的な例を交えて紹介します。

1. Linuxで新しいユーザーを追加する方法

新しいユーザーを追加または作成するには、’useradd‘または’adduser‘コマンドを使用し、その後に’username‘を指定します。’username‘は、ユーザーがシステムにログインするために使用するログイン名です。

一度に1人のユーザーしか追加できず、ユーザー名は一意であり、システム上に既に存在してはなりません。

たとえば、’tecmint’という名前の新しいユーザーを追加するには、次のコマンドを使用します。

useradd tecmint

Linuxで新しいユーザーを’useradd‘コマンドで追加すると、ロックされた状態で作成されます。そのユーザーアカウントをアンロックするには、’passwd‘コマンドを使用してそのアカウントのパスワードを設定する必要があります。

passwd tecmint

Changing password for user tecmint.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
Create a User in Linux

新しいユーザーが作成されると、そのエントリーが自動的に’/etc/passwd‘ファイルに追加されます。このファイルはユーザーの情報を格納するために使用され、エントリーは次のようになります。

tecmint:x:1000:1000:tecmint:/home/tecmint:/bin/bash
View User Info in Linux

上記のエントリーには、それぞれ独自の意味を持つ7つのコロンで区切られたフィールドが含まれています。

これらのフィールドが何であるか見てみましょう。

  • Username – ユーザーログイン名はシステムにログインするために使用されます。1文字から32文字までの長さでなければなりません。
  • パスワード – ユーザーパスワード(または'x'文字)は、暗号化された形式で‘/etc/shadow‘ファイルに保存されます。
  • ユーザーID(UID) – すべてのユーザーはユーザーID(UID)、すなわちユーザー識別番号を持たなければなりません。デフォルトでは、UID 0はルートユーザー用に予約されており、1から99までのUIDは他の事前定義されたアカウント用に予約されています。さらに、100から999までのUIDはシステムアカウントとグループ用に予約されています。
  • グループID(GID) – プライマリグループID(GID)、すなわちグループ識別番号は、‘/etc/group‘ファイルに保存されます。
  • ユーザー情報 – このフィールドはオプションであり、ユーザーに関する追加情報、例えばユーザーのフルネームを定義するために使用できます。この情報はfingerコマンドを使用して入力できます。
  • ホームディレクトリ – ユーザーのホームディレクトリの絶対的な場所。
  • シェル – ユーザーのシェルの絶対的な場所、例えば/bin/bash

2. 異なるホームディレクトリでユーザーを作成する方法

デフォルトでは、‘useradd‘コマンドはユーザーのホームディレクトリを‘/home‘ディレクトリのユーザーネームの下に作成します。例えば、上記のように、ユーザー‘tecmint‘のデフォルトのホームディレクトリは‘/home/tecmint‘です。

ただし、この動作は、新しいホームディレクトリの場所とともに '-d' オプションを使用して変更できます(例:/data/projects)。たとえば、次のコマンドは、ホームディレクトリが ‘/data/projects‘ に設定されたユーザ ‘anusha‘ を作成します。

# useradd -d /data/projects anusha
# passwd anusha

ユーザのホームディレクトリやユーザ ID、グループ ID、シェル、コメントなど、他のユーザ関連情報を以下の cat コマンド を使用して表示できます。

cat /etc/passwd | grep anusha

anusha:x:1001:1001::/data/projects:/bin/bash
Create a User with a Home Directory in Linux

3. 特定のユーザ ID を持つユーザの作成方法

Linux では、各ユーザに固有の UID(一意の識別番号)があります。Linux で新しいユーザアカウントを作成すると、デフォルトでユーザ ID が 500501502 などが割り当てられます。

ただし、'-u' オプションを使用してカスタムユーザ ID を持つユーザを作成することができます。たとえば、次のコマンドは、カスタムユーザ ID ‘1002‘ を持つユーザ ‘navin‘ を作成します。

useradd -u 1002 navin

さて、定義されたユーザ ID(1002)で作成されたユーザを以下のコマンドを使用して確認しましょう。

cat /etc/passwd | grep navin

navin:x:1002:1002::/home/navin:/bin/bash
Create a User with the User ID in Linux

注意: ユーザ ID の値は、システム上で既に作成されている他のユーザと重複しないようにする必要があります。

4. 特定のグループ ID を持つユーザの作成方法

GIDグループ識別子)を持つユーザが各々存在します。また、'-g'オプションを使用して特定のグループIDを持つユーザを作成することもできます。

この例では、'-u'オプションと'-g'オプションを使用して、特定のUIDGIDを持つユーザ ‘tarunika‘ を同時に追加します。

useradd -u 1005 -g tecmint tarunika

次に、’/etc/passwd‘ファイルで割り当てられたユーザIDとグループIDを確認します。

cat /etc/passwd | grep tarunika

tarunika:x:1005:1000::/home/tarunika:/bin/bash

ユーザのGIDを確認するには、idコマンドを使用します。

id -gn tarunika
Create a User with Group ID in Linux

5. 複数のグループへのユーザの追加方法

'-G'オプションを使用してユーザを追加すると、追加のグループにユーザが追加されます。各グループ名はコンマで区切られ、間にスペースは入りません。

この例では、ユーザ ‘tecmint‘ を複数のグループ(adminswebadmindevelopersなど)に追加しています。

groupadd admins
groupadd webadmin
groupadd developers
usermod -a -G admins,webadmin,developers tecmint
useradd -G admins,webadmin,developers paddy

次に、idコマンドを使用して複数のグループがユーザに割り当てられていることを確認します。

id tecmint

uid=1000(tecmint) gid=1000(tecmint)
groups=1000(tecmint),1007(admins),1008(webadmin),1009(developers)
context=root:system_r:unconfined_t:SystemLow-SystemHigh
Add User to Group in Linux

6. ホームディレクトリを持たないユーザの追加方法

特定の状況では、セキュリティ上の理由からユーザにホームディレクトリを割り当てたくない場合があります。そのような場合、ユーザがシステムにログインした際のホームディレクトリはルートになります。ユーザが ‘su’ コマンドを使用すると、前のユーザのホームディレクトリがログインディレクトリとなります。

ユーザーをホームディレクトリなしで作成するには、'-M'オプションを使用します。たとえば、次のコマンドは、ホームディレクトリなしでユーザー ‘shilpi’ を作成します。

useradd -M shilpi

さて、lsコマンドを使用して、ユーザーがホームディレクトリなしで作成されたことを確認しましょう。

ls -l /home/shilpi

ls: cannot access /home/shilpi: No such file or directory
Create User Without Home Directory in Linux

7. Linuxで有効期限付きユーザーを作成する方法

デフォルトでは、useraddコマンドを使用してユーザーを追加すると、ユーザーアカウントは期限切れになりません。つまり、有効期限が 0(つまり期限切れにならない)に設定されます。

ただし、'-e'オプションを使用して有効期限を設定できます。このオプションは、YYYY-MM-DD形式で指定する必要があります。これは、特定の期間の一時的なアカウントを作成するのに役立ちます。

この例では、2021年8月27日の有効期限付きアカウント ‘aparna’ を、YYYY-MM-DD形式で作成します。

useradd -e 2021-08-27 aparna

次に、アカウントの有効期限日を設定した後に、ユーザー ‘aparna’ のアカウントとパスワードのエイジング情報を確認します。chageコマンドを使用してください。

chage -l aparna

Last password change					: Jun 25, 2021
Password expires					: never
Password inactive					: never
Account expires						: Aug 27, 2021
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7
Create User With Account Expiry Date

8. パスワード有効期限付きユーザーの作成方法

'-f'引数は、パスワードの有効期限が切れた後の日数を定義するために使用されます。値が0の場合、パスワードが期限切れになるとユーザーアカウントが無効になります。デフォルトでは、パスワードの有効期限の値は-1に設定されており、決して期限切れになりません。

この例では、'-e''-f'オプションを使用して、ユーザー‘mansi’のアカウントパスワードの有効期限を45日に設定します。

useradd -e 2014-04-27 -f 45 mansi
Create User With Password Expiry Date

9. Linuxでコメント付きのユーザーを追加する方法

'-c'オプションを使用すると、ユーザーのフルネーム、電話番号などのカスタムコメントを‘/etc/passwd’ファイルに追加できます。コメントは、スペースなしの単一行として追加できます。

例えば、次のコマンドはユーザー‘mansi’を追加し、そのユーザーのフルネーム、Manis Khurana、をコメントフィールドに挿入します。

useradd -c "Manis Khurana" mansi

コメントが挿入されたことを‘/etc/passwd’ファイルのコメントセクションで、tailコマンドを使用して表示できます。

tail -1 /etc/passwd

mansi:x:1010:1013:Manis Khurana:/home/mansi:/bin/sh
Create User with Full Name

10. Linuxでユーザーログインシェルを作成する方法

時々、ログインシェルとは関係のないユーザーを追加したり、時にはユーザーに異なるシェルを割り当てる必要があります。‘-s’オプションを使用して、各ユーザーに異なるログインシェルを割り当てることができます。

ここでは、ログインシェルなしでユーザー ‘tecmint‘ を追加します。’/sbin/nologin‘ シェルで。

useradd -s /sbin/nologin tecmint

ユーザーに割り当てられたシェルを ‘ /etc/passwd ‘ ファイルで確認できます。

tail -1 /etc/passwd

tecmint:x:1011:1014::/home/tecmint:/sbin/nologin
Create a User with a Login Shell

11. 指定されたホーム、シェル、およびコメントでユーザーを作成する方法

次のコマンドは、ユーザー ‘ravi‘ を作成し、ホームディレクトリを ‘/var/www/tecmint‘ に、デフォルトシェルを /bin/bash に、ユーザーに関する追加情報を指定します。

useradd -m -d /var/www/ravi -s /bin/bash -c "TecMint Owner" -U ravi
Create a User with Home Directory and Login Shell

上記のコマンドでは、オプション '-m''-d' は指定されたホームディレクトリを持つユーザーを作成し、'-s' オプションはユーザーのデフォルトシェルを /bin/bash に設定します。 '-c' オプションはユーザーに関する追加情報を追加し、 '-U' 引数はユーザーと同じ名前のグループを作成/追加します。

12. ホーム、シェル、コメント、UID/GID を定義してユーザーを作成する方法

このコマンドは、上記のものと非常に似ていますが、ここではシェルを ‘/bin/zsh‘ と定義し、ユーザー ‘tarunika’ のカスタムUIDおよびGIDを設定します。 '-u' オプションは新しいユーザーのUID(つまり、100)を定義し、 '-g' オプションはGID(つまり、1000)を定義します。

useradd -m -d /var/www/tarunika -s /bin/zsh -c "TecMint Technical Writer" -u 1000 -g 100 tarunika
Create a User with UID and GID

13. ホーム、シェルなし、コメント、およびUID を指定してユーザーを作成する方法

次のコマンドは、上記の2つのコマンドと非常に似ています。唯一の違いは、ここでは、カスタムユーザーID(つまり、1019)を持つユーザー ‘avishek‘ のログインシェルを無効にしたことです。

'-s' オプションはデフォルトのシェルを /bin/bash に設定しますが、この場合、ログインシェルを ‘/usr/sbin/nologin‘ に設定しました。つまり、ユーザー ‘avishek‘ はシステムにログインできなくなります。

useradd -m -d /var/www/avishek -s /usr/sbin/nologin -c "TecMint Sr. Technical Writer" -u 1019 avishek
Create a User with UID and Nologin

14. 指定されたホーム、シェル、スケルトン、およびUIDでユーザーを作成する方法

このコマンドの唯一の変更点は、デフォルトの /etc/skel の代わりにカスタムスケルトンディレクトリを /etc/custom.skell に設定するために '-k' オプションを使用したことです。また、ユーザー ‘navin‘ に異なるシェル、/bin/tcsh を定義するために '-s' オプションを使用しました。

useradd -m -d /var/www/navin -k /etc/custom.skell -s /bin/tcsh -c "No Active Member of TecMint" -u 1027 navin
Create a User with Shell and UID

15. ホーム、シェル、またはグループなしで、コメント付きユーザーを作成する方法

次のコマンドは、上記で説明した他のコマンドとは非常に異なります。ここでは、'-M' オプションを使用してユーザーのホームディレクトリを持たないユーザーを作成し、'-N' オプションはシステムにユーザー名のみを作成するよう指示します。 '-r' オプションはシステムユーザーを作成します。

useradd -M -N -r -s /bin/false -c "Disabled TecMint Member" clayton
Create a User with NoLogin and Group

‘useradd’ に関する詳細な情報とオプションについては、ターミナルで ‘useradd’ コマンドを実行して利用可能なオプションを確認してください。

useradd

ユーザー アカウントの属性を変更する場合は、ユーザー モッド コマンドを使用します。

Source:
https://www.tecmint.com/add-users-in-linux/