ウェブサイト検索

Linux での 15 の便利な Useradd コマンドと例


私たちは皆、Linux で「useradd」または「adduser」と呼ばれる最も一般的なコマンドを知っています。 Linux システム管理者は、特定のプロパティ、制限、またはコメントを備えた Linux 上でユーザー アカウントを作成するように求められる場合があります。

Linux では、「useradd」 コマンドは、Linux やその他の Unix 系オペレーティング システムでユーザー アカウントを追加または作成するために使用される低レベル ユーティリティです。 「adduser」 コマンドは、「useradd」 コマンドへの単なるシンボリック リンクであるため、「useradd」 コマンドとよく似ています。

一部の Linux ディストリビューションでは、「useradd」 コマンドのバージョンが若干異なる場合があります。 Linux で新しいユーザー アカウントを作成する手順を実行する前に、ドキュメントを読むことをお勧めします。

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

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

Useradd コマンドの構文

useradd」 コマンドの基本構文は次のとおりです。

useradd [options] username

この記事では、Linux で最も一般的に使用される 15 個の「useradd」コマンドを実際の例とともに示します。

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

新しいユーザーを追加または作成するには、「useradd」または「adduser」コマンドの後に「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.

新しいユーザーが作成されると、そのエントリは自動的に「/etc/passwd」ファイルに追加されます。このファイルはユーザーの情報を保存するために使用され、エントリはそうである必要があります。

tecmint:x:1000:1000:tecmint:/home/tecmint:/bin/bash

上記のエントリには、コロンで区切られた 7 つのフィールドのセットが含まれており、各フィールドには独自の意味があります。

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

  • ユーザー名 – ユーザーのログイン名はシステムへのログインに使用されます。長さは 1 ~ 32 文字にする必要があります。
  • パスワード – ユーザー パスワード (または 'x' 文字) は、暗号化された形式で「/etc/shadow」ファイルに保存されます。
  • ユーザー ID (UID) – すべてのユーザーはユーザー ID (UID) を持っている必要があります。これはユーザー識別番号を表します。デフォルトでは、UID 0 は root ユーザー用に予約されており、1 ~ 99 の範囲の UID は他の事前定義されたアカウント用に予約されています。さらに、100 ~ 999 の範囲の UID はシステム アカウントおよびグループ用に予約されています。
  • グループ ID (GID)グループ識別番号を表すプライマリ グループ ID (GID) は、「 /etc/ グループ」ファイル。
  • ユーザー情報 – このフィールドはオプションであり、ユーザーのフルネームなど、ユーザーに関する追加情報を定義できます。この情報は、finger コマンドを使用して入力できます。
  • ホーム ディレクトリ – ユーザーのホーム ディレクトリの絶対的な場所。
  • シェル – ユーザーのシェルの絶対的な場所、つまり /bin/bash

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

デフォルトでは、「useradd」コマンドは、「/home」ディレクトリの下にユーザー名を使用してユーザーのホーム ディレクトリを作成します。たとえば、上で示したように、ユーザー「tecmint」のデフォルトのホーム ディレクトリは「/home/tecmint」です。

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

useradd -d /data/projects anusha
passwd anusha

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

cat /etc/passwd | grep anusha

anusha:x:1001:1001::/data/projects:/bin/bash

3. 特定のユーザーIDでユーザーを作成する方法

Linux では、すべてのユーザーが独自の UID (Unique Identification Number) を持っています。デフォルトでは、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

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

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

同様に、すべてのユーザーは独自のGID (グループ識別子) を持っています。 '-g' オプションを使用して、特定のグループ ID を持つユーザーを作成することもできます。

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

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

5. ユーザーを複数のグループに追加する方法

'-G' オプションは、ユーザーを追加のグループに追加するために使用されます。各グループ名は、間にスペースを入れずにカンマで区切られます。

この例では、ユーザー「tecmint」を管理者webadmin開発者などの複数のグループに追加します。強い>。

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

6. ホームディレクトリを使用せずにユーザーを追加する方法

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

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

useradd -M shilpi

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

ls -l /home/shilpi

ls: cannot access /home/shilpi: No such file or directory

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

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

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

この例では、YYYY-MM-DD2021 年 8 月 27 日をアカウント有効期限日としてユーザー「aparna」を作成します。 > フォーマットします。

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

8. パスワードの有効期限を設定してユーザーを作成する方法

'-f' 引数は、パスワードの有効期限が切れてからの日数を定義するために使用されます。値 0 を指定すると、パスワードの有効期限が切れるとすぐにユーザー アカウントが非アクティブになります。デフォルトでは、パスワードの有効期限値は -1 に設定されており、有効期限が切れないことを意味します。

この例では、'-e'mansi' のアカウント パスワードの有効期限を 45 日に設定します。 > および '-f' オプション。

useradd -e 2014-04-27 -f 45 mansi

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

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

たとえば、次のコマンドはユーザー「mansi」を追加し、そのユーザーのフルネームである Manis Khurana をコメント フィールドに挿入します。

useradd -c "Manis Khurana" mansi

tail コマンドを使用すると、コメント セクションの「/etc/passwd」ファイルに挿入されたコメントを表示できます。

tail -1 /etc/passwd

mansi:x:1010:1013:Manis Khurana:/home/mansi:/bin/sh

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

場合によっては、ログイン シェルとまったく関係のないユーザーを追加したり、ユーザーに別のシェルを割り当てる必要がある場合もあります。 「-s」 オプションを使用して、各ユーザーに異なるログイン シェルを割り当てることができます。

この例では、ログイン シェル、つまり「/sbin/nologin」シェルなしでユーザー「tecmint」を追加します。

useradd -s /sbin/nologin tecmint

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

tail -1 /etc/passwd

tecmint:x:1011:1014::/home/tecmint:/sbin/nologin

11. ホーム、シェル、コメントを指定してユーザーを作成する方法

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

useradd -m -d /var/www/ravi -s /bin/bash -c "TecMint Owner" -U ravi

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

12. 定義されたホーム、シェル、コメント、UID/GID を持つユーザーを作成する方法

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

useradd -m -d /var/www/tarunika -s /bin/zsh -c "TecMint Technical Writer" -u 1000 -g 100 tarunika

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

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

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

useradd -m -d /var/www/avishek -s /usr/sbin/nologin -c "TecMint Sr. Technical Writer" -u 1019 avishek

14. 指定したホーム、シェル、スケルトン、UID を持つユーザーを作成する方法

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

useradd -m -d /var/www/navin -k /etc/custom.skell -s /bin/tcsh -c "No Active Member of TecMint" -u 1027 navin

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

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

useradd -M -N -r -s /bin/false -c "Disabled TecMint Member" clayton

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

useradd

ユーザー名、ユーザー ID (UID)、ホーム ディレクトリ、シェルなどの変更など、ユーザー アカウントの属性を変更する場合は、usermod コマンドを使用します。