Quelle est la différence entre adduser et useradd?


441

Quelle est la différence entre les commandes adduseret useraddsur Ubuntu?



5
et aussi sur Unix stackexchange (réponse assez détaillée)
xealits

et c’est et reste une bonne question valable. Le problème, ce n’est pas les gens qui le demandent dans des contextes respectifs, c’est que cette question doit être posée du tout.
foo

Réponses:


387

useraddest un binaire natif compilé avec le système. Mais, adduserest un script Perl qui utilise le useraddbinaire en back-end.

adduserest plus convivial et interactif que son back-end useradd. Il n'y a pas de différence dans les fonctionnalités fournies.

Source: Quelle est la différence entre “adduser” et “useradd”?


59
La commande add useradd ne créera pas le répertoire '/ home / username' mais la commande adduser le fera
Approfondir

65
useradd avec l' -moption créera le répertoire de base.
richsinn

10
L'implémentation n'est pas si intéressante que la sémantique. Like adduser(8)est plus convivial et crée et configure un utilisateur par défaut comme vous le souhaitez. Et useradd(8)ne faites que ce que vous demandez, alors vous voulez un répertoire personnel créé, vous devez le lui dire pour le créer pour vous.
Anders

23
Je dois google à chaque fois ... Comment puis-je m'aider à me rappeler lequel est lequel?
Quentin Skousen

11
@kkhugs to me "adduser" semble le plus intuitif car c'est une commande qui ressemble à l'anglais, alors que l'autre ne le fait pas, sémantiquement. Si vous vous en souvenez comme «le plus intuitif» des deux, vous pouvez également essayer de vous en rappeler comme celui que vous préférez / plus facile.
pzkpfw

146

Toujours utiliseradduser (et deluserlors de la suppression d'utilisateurs) lorsque vous créez de nouveaux utilisateurs à partir de la ligne de commande. (Si vous écrivez un script, en particulier si vous visez la portabilité, vous voudrez peut-être utiliser les utilitaires de bas niveau - et adduser/ deluserpourrait ne pas être disponible sur toutes les distributions, par exemple sur SuSE.)

Les commandes useradd, userdelet usermodsont des utilitaires de bas niveau qui existent pour des raisons historiques, tandis que adduser/deluserDo The Right Thing ™. (Je me souviens lequel utiliser en pensant que cela user*vient après adduser/deluserdans l'alphabet, et est donc "pire".)

Selon les pages de manuel respectives (sur Ubuntu 12.04 Precise Pangolin, c’est-à-dire un système dérivé de Debian).

Manpage for adduserdit:

(Soulignement ajouté.)

adduseret addgroupajouter des utilisateurs et des groupes au système en fonction des options de ligne de commande et des informations de configuration dans /etc/adduser.conf. Ils sont plus conviviaux pour les outils de bas niveau tels que useradd, groupaddet les usermodprogrammes , choisissant par défaut les valeurs UID et GID conformes à la politique Debian, créant un répertoire de base avec une configuration squelettique, exécutant un script personnalisé et d’autres fonctionnalités. adduseret addgrouppeut être exécuté dans l’un des cinq modes suivants:

Manpage for useradddit:

useraddest un utilitaire de bas niveau pour l'ajout d'utilisateurs. Sur Debian, les administrateurs devraient généralement utiliser à la adduser(8)place.

Voir aussi: Quelle est la différence entre “adduser” et “useradd”? (sur SuperUser)


6
Je ne me souviens jamais lequel, alors c'est ma stupide mnémonique si ça aide quelqu'un: "utilisateur" rime avec "perdant", et "perdant" vient en dernier. Ainsi: adduser, deluser.
Mads Skjern

26
En fait, je ne suis pas d' accord sur " Toujours utiliser l'utilisateuradduser ": pour les scripts automatisés, je préférerais, useraddcar il est toujours présent, non interactif et non spécifique à la distribution .
Wernight

2
J'ai essayé addusersur openSUSE, et ce n'est pas là. (13.2)
cst1992

1
@ cst1992 Vous avez raison, j'ai modifié la réponse en conséquence. Curieusement, lorsque j’ai essayé locate addusersur un système SuSE 11 au travail, j’ai trouvé qu’il existait une adduserpage de manuel, mais pas de binaire (et ni une deluserpage de manuel ni une commande).
Zrajm

2
Sur Red Hat/usr/sbin/adduser -> useradd
Levon

17

adduser: ajouter un utilisateur avec le profil complet et des informations (passe, quota, permission, etc.)

useradd: ajouter un utilisateur avec son nom uniquement (si vous voulez ajouter un utilisateur temporaire avec seulement un nom, d'autres informations non requises)


1
+1 et bienvenue! J'ai voté la personne qui était incapable d'expliquer son précédent vote négatif. Continuez! Les bons programmeurs montent toujours au sommet - (et ne votez pas sans explication). :)
Ricalsin

11

Deux autres différences, qui conduisent à des scénarios spécifiques dans lesquels useradd pourrait être préférable.

  1. Dans certaines distributions plus récentes, y compris Ubuntu 14.4, adduser demandera des informations telles que mot de passe et "gecos" (données pour la commande finger). Cela signifie que cela peut être moins approprié pour appeler depuis un script (crédit: déjà mentionné dans un commentaire de Wernight).

    Les invites peuvent être supprimées en passant des arguments nuls:

    adduser --disabled-password --gecos "" USER
    
  2. useraddvous permet de transmettre plusieurs groupes supplémentaires auxquels ajouter un utilisateur à l'aide de l' -Goption. addusersemble exiger que vous appeliez la commande une fois pour chaque groupe à ajouter.


Ne fonctionne pas sur Ubuntu 16.04.
answerSeeker

8

adduserest plus convivial en ce sens qu'il configure les dossiers de départ du compte et d'autres paramètres (par exemple, le chargement automatique de statistiques système et de notifications lors de la connexion), alors qu'il useraddne crée que l'utilisateur.


2
Faux. useradd peut créer un répertoire personnel avec -m, définir un mot de passe avec -p, créer des fichiers squelettes avec -k et ajouter des utilisateurs à des groupes avec -G.
Ychaouche

5

La différence fondamentale est que "adduser" créera un répertoire personnel et ajoutera des fichiers squelettes à ce répertoire où "useradd" ne créera aucun répertoire personnel ni aucun fichier squelette!

adduser essayez:

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

Je tiens également à souligner que adduserl' -Moption n'est pas toujours disponible et que le --systemdrapeau n'est pas respecté. Il indique spécifiquement :

Notez que useradd ne créera pas de répertoire de base pour un tel utilisateur, quel que soit le paramètre par défaut défini dans /etc/login.defs (CREATE_HOME). Vous devez spécifier les options -m si vous souhaitez qu'un répertoire de base pour un compte système soit créé.

Si vous essayez de créer un utilisateur système sans répertoire personnel, utilisez-le useradd --system -M.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.