Linuxで新しいユーザーを作成する場合は、adduserまたはuseraddコマンドのいずれかを使用するオプションがあります。
では、useraddコマンドとadduserコマンドの違いは何ですか?それらの1つは他よりも優れていますか?どちらを使うべきですか? useraddまたはadduser?
adduserコマンドとuseraddコマンドの違い
Useraddは、任意のLinuxシステムにある組み込みのLinuxコマンドです。ただし、この低レベルで新しいユーザーを作成することは、デフォルトではホームディレクトリとユーザーパスワードを作成しないため、面倒な作業です。
Adduserは標準のLinuxコマンドではありません。これは基本的に、バックグラウンドでuseraddコマンドを使用するPerlスクリプトです。この高レベルのユーティリティは、Linuxで新しいユーザーを適切に作成するのにより効率的です。ホームディレクトリを作成したり、パスワードを設定したり、さらにいくつかのパラメータを設定したりするオプションがあります。
これらのコマンドと、それらがLinuxでユーザーを作成する方法の両方を見てみましょう。
まず、useraddコマンドのデフォルトの動作を見てみましょう。次のコマンドを実行したことがありますか?
useradd new_user
このコマンドが完全なユーザーアカウントを作成したディストリビューションはまだ見ていません。新しいユーザーのパスワードを設定した後でも、追加のオプションを使用する必要があります。
たとえば、私のシステムでは、上記のコマンドにより、/ etc/passwdファイルに次のエントリが追加されました。
Linuxでのユーザーの一覧表示に関する記事を読んだ場合は、おそらく/ etc/passwdファイルの内容に既に精通しているはずです。最初は良さそうに見えますが、掘り始めるとすぐにいくつかのことが正しくないことに気付くでしょう。
まず、2番目のフィールドには「x」が含まれています。これは、パスワード情報のプレースホルダーが/ etc/shadowにあることを意味します。しかし、私はパスワードを設定していません。これは、テストユーザーがログインできないことを意味します。
次に、ホームディレクトリ。 / home/testが存在しないということです。パスワードを設定した後でも、ユーザーがログインするとエラーが発生します。他の構成によっては、Linuxシステムにより、有効なホームディレクトリを持たないユーザーがログインできない場合があります。おそらく、ユーザーテスト 少なくともテキストモードでは、システムにログインできます。ただし、ユーザーテスト 彼のホームディレクトリを作成することは許可されません。
第三に、デフォルトのログインシェルはbashではなくshです。 shをシェルとして使用しません。ほとんどのLinuxディストリビューションではbashがデフォルトのシェルであるため、おそらくどちらもしません。
useraddの動作は、/ etc / login.defsを編集することでわずかに変更できますが、上記のコマンドで完全なユーザーアカウントが作成される可能性はほとんどありません。 Useraddは低レベルのユーティリティです。それでも、/ etc/login.defsの設定を確認すると便利な場合があります。
Adduserコマンド
Adduserコマンドは、一部のLinuxディストリビューションでは使用できません。その他の場合は、useraddへのソフトリンクです。他のいくつかでは、それはPerlスクリプトです。
Adduserは、インタラクティブな高レベルのユーティリティです。低レベルのユーティリティuseraddをバックエンドとして使用します。 /etc/login.defsの設定は、adduserコマンドの使用中に使用されます。 Debianベースのディストリビューションでは、manページでさえuseraddコマンドよりも使用することを推奨しています。
ユーザー名だけでadduserを呼び出すと、一連の質問が表示されます。
いくつかの質問に答えた後、ホームディレクトリを持つ完全なユーザーアカウントが作成されます。新しいユーザーは、ログインマネージャまたはテキストモードでログインする準備ができています。
低レベルのユーティリティuseraddを使用してほぼ同じ結果を達成するには、コマンドは次のようになります。
sudo useradd -d /home/test -m -s/bin/bash \ -c FullName,Phone,OtherInfo test && passwd test
-c オプションは問題なく削除できます。以下のコンマ区切りのリストは、/ etc/passwdに追加されたコメントです。ただし、それでも、adduserは2つの追加コマンドを保存します。
Adduserコマンドには、使用可能なオプションのリストがあります。これが私が知るのに最も役立つと思う短いリストです。詳細については、ヘルプまたはマニュアルページを参照してください。
- system:システムユーザーを追加します。デフォルトでは、システムユーザーはnogroupグループに配置されます。システムユーザーを既存のグループに追加するには、–gidまたは–ingroupオプションを指定します。
- home DIR:デフォルトの代わりにDIRをホームディレクトリとして使用します。必要に応じてディレクトリが作成され、スケルトンファイルがコピーされます。
- shell SHELL:デフォルトの代わりにSHELLを使用します。
- グループ内グループ:ユーザーのプライマリグループをグループに設定
- add_extra_groups:構成ファイルで定義された追加のグループに新しいユーザーを追加します。
Adduserの構成ファイルを使用すると、アカウントの作成時に使用されるデフォルト値を設定できます。このファイルは十分に文書化されており、次のようなデフォルト値を設定できます。
- デフォルトのシェル
- ホームディレクトリ
- 追加のグループ
- グループを追加する
システム管理者としての私の個人的な経験では、adduserはLinuxで新しいユーザーを作成するのにはるかに優れています。いつでもuseraddよりadduserの方が好きで、同じことをお勧めします。
あなたはどうですか? adduserとuseraddのどちらが好きですか?