LinuxおよびUnixライクなオペレーティングシステムでは、ユーザーを作成するための最も一般的なコマンドは「useradd」または「adduser」です。システム管理者は、多くの場合、ユーザーの追加、ユーザーの削除、グループの作成、およびユーザーの割り当てが必要になります。
機能的には、上記の2つのコマンドに違いはありません。 adduserコマンドは使いやすく、Debian/Ubuntu管理者の中にはそれを使うのが好きな人もいます。 Useraddは、Linuxシステムでバイナリコンパイルされ、adduserのバックエンドとして機能します。
このチュートリアルでは、useraddコマンドを使用してターミナルからLinuxでユーザーを作成する方法を学習します。
Useraddコマンドと構文
次の行は、useraddコマンドの構文を示しています。
useradd [OPTIONS] username
ユーザー名に続けてコマンドを指定するだけで、ユーザーを追加できます。 useradd
を実行する必要があります rootまたはsudoユーザー権限を持つコマンド。
useradd
についてもっと学びましょう コマンドとそのオプション。
1)Linuxで新しいユーザーを作成する方法
上記のように、新しいユーザーを作成するには、useraddコマンドを使用します。
次のコマンドは「bill」という名前の新しいユーザーを作成し、2番目のコマンドはユーザー(「bill」)に新しいパスワードを設定します。
$ sudo useradd bill
$ sudo passwd bill
これにより、ホームディレクトリが/home/bill
のユーザーが作成されます。 '/ etc/skel'ディレクトリからユーザーのホームディレクトリにファイルをコピーします。
$ ls -al /home/bill/
total 20
drwx------. 2 bill bill 4096 Mar 9 06:49 .
drwxr-xr-x. 4 root root 4096 Mar 9 06:49 ..
-rw-r--r--. 1 bill bill 18 Nov 8 16:21 .bash_logout
-rw-r--r--. 1 bill bill 141 Nov 8 16:21 .bash_profile
-rw-r--r--. 1 bill bill 312 Nov 8 16:21 .bashrc
このコマンドは、/ etc / passwd、/ etc / shadow、/ etc / group、および/ etc/gshadowファイルにエントリを追加します。
注:UbuntuおよびDebian関連のディストリビューションでは、オプションで指定する必要がない限り、useraddはデフォルトのホームディレクトリを作成しません。代わりに、Debianはadduserコマンドを使用することをお勧めします。
2)特定のホームディレクトリを持つユーザーを作成します
ユーザーログインの値として特定のホームディレクトリを持つユーザーを作成するには、-d
を使用します オプション。コマンドを実行する前に、必ずmkdirコマンドを使用してベースホームディレクトリを作成してください。
'devops'というベースホームディレクトリを作成しましょう:
$ sudo mkdir /devops
次のコマンドは、ユーザー「bill」を作成し、彼のホームディレクトリを「/ devops/billhome」として設定します。
$ sudo useradd -d /devops/billhome bill
Output
$ sudo useradd -d /devops/billhome bill
$ ls -al /devops/billhome
total 12
drwxr-xr-x 2 bill bill 100 Dec 31 05:13 .
drwxr-xr-x 17 root root 3680 Dec 31 05:13 ..
-rw-r--r-- 1 bill bill 220 Apr 4 2018 .bash_logout
-rw-r--r-- 1 bill bill 3771 Apr 4 2018 .bashrc
-rw-r--r-- 1 bill bill 807 Apr 4 2018 .profile
-m(存在しない場合はホームディレクトリを作成する)と-d(ユーザーのログインディレクトリ名として指定されたパスを設定する)の両方を組み合わせて使用して、ユーザーを作成できます。
$ sudo useradd -m -d /home/bobhome bob
3)特定のユーザーIDを持つユーザーの作成
デフォルトでは、ユーザーを作成すると、login.defsファイルで定義されている次に使用可能なUIDが割り当てられます。ただし、-u
を使用する オプションで、特定のUIDを持つユーザーを作成できます。
次の例では、ユーザー請求書は特定のUID(3210)で作成されています。
$ useradd -u 3210 bill
$ grep bill /etc/passwd bill:x:3210:3210::/home/bill:/bin/bash
UIDは、上記の出力に示されているように、「/ etc/passwd」ファイルに表示されます。
4)特定のログインシェルでユーザーを作成する
特定のログインシェル(ksh、tcsh、zshなど)を使用するか、シェルログインを使用しない('/ sbin / nologin')ユーザーを作成する必要がある場合があります。
-s
を使用して、ユーザーのアカウントに関連付けられたログインシェルを指定できます。 以下に示すオプション:
$ useradd -s /bin/tcsh bill
/ etc / passwdファイルからユーザー名をgrepすることで、ログインシェルを確認できます。
$ grep bill /etc/passwd bill:x:504:505::/home/bill:/bin/tcsh
5)特定のベースホームディレクトリを作成する
デフォルトでは、ユーザーのホームディレクトリは「/ home」(/ etc / default / useraddの変数)ディレクトリにあります。 -b
を使用する オプションで、新しいユーザー用に別のベースホームディレクトリを作成できます。
次のコマンドは、「/ mnt」ディレクトリをベースディレクトリとして設定し、ユーザー「bill」のホームディレクトリを「/ mnt/bill」として作成します。
$ useradd -b /mnt bill
$ grep bill /etc/passwd bill:x:504:505::/mnt/bill:/bin/bash
6)有効期限のあるユーザーを作成します
新しいユーザーを作成するときに、-e
を使用してユーザーアカウントの有効期限を設定できますか? オプション。
次の例では、ユーザー「bill」の有効期限を設定します(日付の形式はYYYY-MM-DDです)。
$ sudo useradd -e 2013-06-23 bill
これは、「/ etc/shadow」ファイルの最後のフィールドをチェックインすることで確認できます。最後のフィールド(15879)は、アカウントが無効になっている1970年1月1日からの日数で有効期限を示しています。
$ sudo grep bill /etc/shadow bill:!!:15813:0:99999:7::15879:
ユーザーの有効期限を確認するより簡単な方法は、以下に示すようにchageコマンドを使用することです。
$ sudo chage -l bill
Last password change : Feb 10, 2013
Password expires : never
Password inactive : never
Account expires : Jun 23, 2013
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
-f
オプションは、パスワードの有効期限が切れてからアカウントが完全に無効になるまでの日数を提供します。 0
の値 パスワードの有効期限が切れるとすぐにアカウントを無効にします。
$ sudo useradd -f 20 bill
シャドウファイルに示されているように、日数は20に設定されています(最後から2番目の列)。
$ sudo grep bill /etc/shadow bill:!!:15813:0:99999:7:20::
7)ユーザーの作成と複数のグループへの追加
Linuxの各ユーザーは、1つのプライマリグループと0個以上のセカンダリグループ(補足グループ)にとどまる必要があります。
ユーザーが所属するプライマリグループは、-gオプションで設定できます。このオプションで提供されるグループはすでに存在している必要があります。
$ sudo useradd -g xero bill
$ sudo id bill uid=504(bill) gid=505(xero) groups=505(xero) context=root:system_r:unconfined_t:SystemLow-SystemHigh
グループはidコマンドで確認できます。 -G
オプションは、ユーザーを追加のグループに追加するために使用されます。
$ sudo useradd -G g1,g2,g3 bill
$ sudo id bill uid=504(bill) gid=509(bill) groups=509(bill),506(g1),507(g2),508(g3) context=root:system_r:unconfined_t:SystemLow-SystemHigh
ユーザーを作成して複数のグループに割り当てる方法を確認しましょう。このコマンドは、プライマリグループ「teams」とセカンダリグループ「admin」および「apache」を持つ「bill」という名前の新しいユーザーを作成します。
$ sudo useradd -g teams -G admin,apache bill
8)重複するユーザーIDを作成する
-o
オプションを使用すると、重複するユーザー(一意ではない)IDを持つユーザーアカウントを作成できます。 -u
を使用してUID番号を指定する必要があります オプション。
次の例を確認してください:
$ sudo useradd -o -u 503 bill
ここでは、503IDのアカウントが2つ存在することがわかります。
$ sudo grep 503 /etc/passwd
jenny:x:503:503::/home/jenny:/bin/bash
bill:x:503:505::/home/bill:/bin/bash
9)システムアカウントとしてユーザーを作成する
通常、500または1000までのUIDはシステムアカウント用に予約されており、通常のユーザーには割り当てられません。 -r
を使用 オプションで、システムユーザーの範囲内のIDを持つアカウントが作成中のユーザーに与えられます。
$ sudo useradd -r bill
$ sudo grep bill /etc/passwd bill:x:101:102::/home/bill:/bin/bash
ここでは、ユーザーのホームディレクトリは作成されません。手動で作成するか、-m
を指定する必要があります オプション。
10)ホームディレクトリのないユーザーを作成する
ホームディレクトリを単独で作成したくない場合は、-M
オプションを指定できます。
$ sudo useradd -M bill
$ sudo grep bill /etc/passwd
bill:x:504:505::/home/bill:/bin/bash
$ ls /home/bill
ls: /home/bill: No such file or directory
lsコマンドの出力では、billユーザーのホームディレクトリが存在しないことがわかります。
11)パスワードを使用してユーザーを作成する
ユーザーのパスワードはデフォルトで無効になっています。 passwdコマンドを使用して手動でパスワードを設定できます。ただし、ユーザー作成時にパスワードを指定する場合は、-p
を使用できます。 オプション。
ただし、ここで提供されるパスワードは、crypt(3)によって返されるように暗号化する必要があります。
$ sudo useradd -p '$1$ZsQB81$RCCVDuI5VR6q905nUPz4a/' bill
12)デフォルトオプションの変更
ユーザーがシステムに追加されると、シェル、ベースディレクトリなど、一部の値がデフォルトとして使用されます。ベースディレクトリは、ユーザーのホームディレクトリが存在するディレクトリです。ほとんどのLinuxシステムでは、ユーザーのホームディレクトリは/homeディレクトリにあります。
たとえば、ユーザーtomのホームディレクトリはデフォルトで「/ home/tom」になります。したがって、/homeが彼のベースディレクトリになります。これらのデフォルトオプションは、「/ etc / defaults/useradd」ファイルで定義されています。これらのデフォルトは、-D
で表示できます。 useraddコマンドのオプション:
$ sudo useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/sh SKEL=/etc/skel CREATE_MAIL_SPOOL=no
上記のコマンドは、通常のユーザー(root以外のユーザー)でも実行できます。 -D
オプションは、デフォルトを表示するためだけでなく、デフォルトを変更するためにも使用されます。
13)カスタムコメント付きのユーザーを作成する
ユーザーの作成時に、ユーザーのフルネームまたは簡単な説明(コメント)を提供できます。 -c
を使用する必要があります カスタムコメントを追加するオプション。
例を示しましょう:
$ sudo useradd -c "Bill Drape" bill
このコメントは、「/ etc/passwd」ファイルのユーザーのエントリに表示されます。
$ sudo grep bill /etc/passwd bill:x:504:505:Bill Drape:/home/bill:/bin/bash
結論
このチュートリアルでは、Linuxでユーザーを作成する方法とuseraddコマンドのさまざまなオプションを学びました。読んで楽しんでいただければ幸いです。以下のコメントセクションに提案を残してください。