web-dev-qa-db-ja.com

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

Ubuntuのadduserコマンドとuseraddコマンドの違いは何ですか?

436
Joe Cabezas

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

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

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

380
Radu Rădeanu

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

useradduserdel、およびusermodコマンドは、歴史的な理由で存在する低レベルのユーティリティであり、adduser/deluser Do The Right Thing™です。 (user*はアルファベットのadduser/deluserの後に来るため、「悪い」と考えることでどちらを使用するかを覚えています。)

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

adduserのマンページによると:

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

adduserおよびaddgroupは、/etc/adduser.confのコマンドラインオプションと構成情報に従って、ユーザーとグループをシステムに追加します。 これらは、デフォルトでuseraddgroupaddおよびusermodプログラムなどの低レベルツールのフレンドリフロントエンドです、 Debianポリシー準拠のUIDとGIDの値を選択し、スケルトン構成でホームディレクトリを作成し、カスタムスクリプトを実行し、その他の機能を実行します。 adduserおよびaddgroupは、5つのモードのいずれかで実行できます。

useraddのマンページによると:

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

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

147
zrajm

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

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

17
mandm

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

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

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

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

11
AdamS

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

8
Paul

基本的な違いは、「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#
5
Ashish Karpe

また、adduserには-Mオプションが常にあるとは限らず、 具体的に言う--systemフラグも尊重しないことも指摘します。

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

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

0
blockloop