adduserとuseraddの違いは何ですか?


441

コマンドadduseruseraddUbuntu の違いは何ですか?



5
Unixスタック交換でも(非常に詳細な答え)
-xealits

そして、それは良い、有効な質問です。問題は、それぞれの文脈でそれを尋ねる人々ではなく、この質問はまったく尋ねられる必要があるということです。
foo

回答:


387

useraddシステムでコンパイルされたネイティブバイナリです。しかし、バックエンドでバイナリadduserを使用するperlスクリプトuseraddです。

adduserバックエンドよりもユーザーフレンドリーでインタラクティブです useradd。提供される機能に違いはありません。

出典:「adduser」と「useradd」の違いは何ですか?


59
う「/ホーム/ユーザー名」ディレクトリが、adduserコマンドを作成して文句を言わないuseraddコマンドを追加
深める

65
-mオプションを指定してuseraddを実行すると、ホームディレクトリが作成されます。
richsinn

10
実装はそれほど興味深いものではなく、セマンティクスも興味深いものです。Like adduser(8)はよりユーザーフレンドリーであり、デフォルトでユーザーが期待する方法で作成および設定します。そしてuseradd(8)、あなたが求めることだけを行うので、ホームディレクトリを作成したいので、あなたにそれを作成するように指示しなければなりません。
アンデルス

23
これを毎回グーグルで検索する必要があります。
クエンティンスコーセン

11
@kkhugs "adduser"は、英語のように聞こえるコマンドですが、セマンティック上はそうではないため、最も直感的です。2つの「最も直感的な」ものとして覚えている場合は、優先/簡単なものとして覚えてみることができます。
pzkpfw

146

adduserdeluserコマンドラインから新しいユーザーを作成する場合は、常に(およびユーザーを削除するときに)使用します。( -とあなたが移植を目指す場合は特に、スクリプトを書いている場合は、代わりに、低レベルのユーティリティを使用する場合がありますadduser/ deluserSuSEの上、たとえば、すべてのディストリビューション上で使用できない場合があります。)

useradduserdelおよびusermodコマンドは、一方で歴史的な理由のためにそこにある低レベルのユーティリティですadduser/deluserドゥザ・ライト・シング™。(アルファベットのuser*adduser/deluserに来るので、どちらを使用するかを覚えています。したがって、「悪い」です。)

それぞれのマンページによると(Ubuntu 12.04 Precise Pangolin、つまりDebian派生システム上)。

のマンページadduser

(エンファシスが追加されました。)

adduseraddgroupコマンドラインオプションと構成情報に従って、ユーザーとグループをシステムに追加します/etc/adduser.conf彼らは友好フロントが低レベルのようなツールを終了しているuseraddgroupaddusermodプログラム、骨格に構成されたホームディレクトリを作成するカスタムスクリプトを実行している、およびその他の機能、Debianポリシーに準拠UIDとGIDの値を選択するデフォルトでは、。 adduserそしてaddgroup5つのモードのいずれかで実行することができます。

のマンページuseradd

useraddユーザーを追加するための低レベルのユーティリティです。Debianでは、管理者は通常adduser(8)代わりに使用する必要があります。

参照:「adduser」と「useradd」の違いは何ですか?(スーパーユーザー)


6
私はどちらを思い出すこともできないので、誰かを助けるならこれは私の愚かなニーモニックです:)「ユーザー」が「敗者」と韻を踏んで、「敗者」が最後に来ます。したがって、adduser、deluser。
マッドスキャーン

26
私は実際に「常にユーザー」に同意ません:自動化されたスクリプトの場合、常に存在し、非対話的で、ディストリビューション固有ではないため、私は好むでしょう。adduseruseradd
ウェル

2
adduseropenSUSE を試してみましたが、そこにはありません。(13.2)
cst1992

1
@ cst1992そうですね、答えを編集してこれを反映させました。不思議なことに、locate adduser仕事でSuSE 11システムを試してみたところ、adduserマンページはあるが、バイナリは(deluserマンページもコマンドもありません)あることがわかりました。
zrajm

2
Red Hatで/usr/sbin/adduser -> useradd
レボン

17

adduser:完全なプロファイルと情報(パス、クォータ、許可など)を持つユーザーを追加します

useradd:名前のみのユーザーを追加します(名前のみの一時ユーザーを追加する場合、その他の情報は不要です)


1
+1とようこそ!私は彼らの以前の反対票を説明できない人に賛成票を投じました。がんばり続ける!優れたプログラマーは常にトップに上がります-(そして説明なしで投票しないでください)。:)
リカルシン14

11

useraddが望ましい特定のシナリオにつながる別のいくつかの違い。

  1. Ubuntu 14.4を含むいくつかの新しいディストリビューションでは、adduserはパスワードや「gecos」(fingerコマンドのデータ)などの情報の入力を求めます。これは、スクリプトからの呼び出しには適していない可能性があることを意味します(クレジット:Wernightのコメントで既に言及されています)。

    プロンプトは、null引数を渡すことで抑制できます。

    adduser --disabled-password --gecos "" USER
    
  2. useraddこの-Gオプションを使用して、複数の追加グループを渡してユーザーを追加できます。 adduser追加するグループごとに1回コマンドを呼び出す必要があるようです。


ubuntu 16.04では機能しません。
answerSeeker

8

adduserアカウントのホームフォルダーおよびその他の設定(ログイン時にシステムの統計情報や通知を自動的に読み込むなど)をセットアップするという点でより使いやすくuseradd、ユーザーを作成するだけです。


2
違う。useraddは、-mでホームディレクトリを作成し、-pでパスワードを設定し、-kでスケルトンファイルを作成し、-Gでグループにユーザーを追加できます。
ychaouche

5

基本的な違いは、「adduser」がホームディレクトリを作成し、そのディレクトリにスケルトンファイルを追加することです。「useradd」はホームディレクトリとスケルトンファイルを作成しません。

adduser try:

Adding user `try' ...
Adding new group `try' (1001) ...
Adding new user `try' (1001) with group `try' ...
Creating home directory `/home/try' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for try
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] y

useradd try1:

# ll /home/
total 20
drwxr-xr-x  5 root    root    4096 Oct 26 15:52 ./
drwxr-xr-x 22 root    root    4096 Oct 26 15:47 ../
drwx------  8 ashishk ashishk 4096 Oct 26 15:50 ashishk/
drwxr-xr-x  3 root    root    4096 Oct 14 13:02 .ecryptfs/
drwxr-xr-x  2 try     try     4096 Oct 26 15:52 try/
root@chef-workstation:/home/ashishk#


0

またadduser-Mオプションが常にあるわけではなく、特に次のような--systemフラグを尊重しないことも指摘します。

useraddは、/ etc / login.defsのデフォルト設定(CREATE_HOME)に関係なく、そのようなユーザーのホームディレクトリを作成しないことに注意してください。システムアカウントのホームディレクトリを作成する場合は、-mオプションを指定する必要があります。

ホームディレクトリなしでシステムユーザーを作成しようとしている場合は、を使用しますuseradd --system -M

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.