web-dev-qa-db-ja.com

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

どうしてですか:Debian Linuxには、非常によく似た名前と機能を持つこれら2つのコマンドがあるのはなぜですか?これはいつも私を混乱させてきました。

  • それらのいずれかが他のものより優れていますか?
  • なぜ1つに統合されないのですか?
  • それらの間に大きな違いはありますか?
  • どちらを使用すればよいですか?それともユースケースに依存しますか?
67
Petr Pudlák

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

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

75
Apple II

seruserよりもadduserの主な利点は、システムレベルのユーザーを扱うことです。 adduserを使用すると、システムレベルのユーザーアカウントが作成されると、システムユーザーのホームディレクトリにseraddが自動的に配置されなくなります。男を読むと、システムレベルのユーザーと関連するホームディレクトリを除いて、基本的に同じです。 adduser-mオプションで指定されている場合を除き、seraddにプロビジョニングがないシステムレベルのユーザーに対して/ home/userディレクトリを自動的に作成します。私が遭遇した他の読みは、UIDとGUIDがadduserの受け入れられた準拠Debian標準によって割り当てられていると述べています。

13
user517969

私がチェックしたいくつかのRedhatインスタンス(2011から4.9および2017から6.9)では、adduserはPerlスクリプトではなく、単にuseraddのエイリアスです。これはRedhat 6.9にあります。

$ ls -la /usr/sbin/useradd /usr/sbin/adduser
lrwxrwxrwx. 1 root root      7 Nov  2  2016 /usr/sbin/adduser -> useradd
-rwxr-x---. 1 root root 111320 Feb  9  2016 /usr/sbin/useradd

Useraddが「正しい」プログラムであることを私が覚えている方法は次のとおりです。ユーザーの追加は、CRUDスペクトルの1つの操作にすぎません。また、「変更」および「削除」操作も必要です(「読み取り」は、おそらく/ etc/passwdを表示することでカバーされます)。したがって、プログラムの名前はser *(それぞれuseradd、usermod、userdel)になります。別の* user命名規則(adduser、moduser、deluser-これらは存在しない)も機能すると思います。しかし、少し厄介です(現時点では明確に表現できない理由があります)。

2
Happyblue

ラスピアン(他のOSを確認する必要があります)内では、「adduser USER」がダイアログ(TUI)を起動しますが、「useradd USER」は起動しません。

どうやら、adduserを使用して、ダイアログが表示されると、完全な「useradd」コマンドがすでに実行されています。 CTRL-Cを押しても、ユーザーはそこにいます。

新しいシステムと同様に、彼らは「個人」グループを作成します。新しく作成されたユーザーを削除するには、次のことを行う必要があります。

  • vi/etc/passwd
  • vi/etc/group
  • rm -rf/home/USER

Adduserはuseraddを「使用」するため、残りはユーザーに関するメタデータであると思います。したがって、技術的には「スケル」、「ファイルマスク」など、つまりシステムデフォルトの変更はありません。

反対に、useraddはTUIを起動しないため、スクリプトで使用すると便利です。

正直に言って、私がrasbianでのみテストしました。それが私が質問をした理由です。

他のOSが異なるバージョンのadduserを実装していると想像できます。

0
mariotti