Quelle est la différence entre "adduser" et "useradd"?


61

Je me demande: pourquoi existe-t-il ces deux commandes sous Linux Debian, avec des noms et des fonctionnalités très similaires? Cela a toujours été déroutant pour moi.

  • Est-ce que l'un d'eux est supérieur à l'autre?
  • Pourquoi ne sont-ils pas fusionnés en un seul?
  • Y a-t-il une différence significative entre eux?
  • Lequel devrais-je utiliser? Ou cela dépend-il d'un cas d'utilisation?

1
Notez que cette option useraddest disponible sur toutes les plates-formes de type Unix. adduserest uniquement pour Debian et ses dérivés.
Franklin Yu

Réponses:


68

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 aucune différence dans les fonctionnalités fournies.


1
adduser n'est pas disponible sur toutes les distributions (par exemple, basée sur suse), et sur d'autres, il s'agit simplement d'un lien symbolique vers useradd (basé sur redhat).
Ychaouche

12

Le principal avantage de adduser par rapport à useradd concerne les utilisateurs du système. Avec adduser, le compte des utilisateurs de niveau système une fois créé crée un répertoire utilisateur pour l'utilisateur système, où useradd ne fonctionne pas automatiquement. Si vous lisez l'homme, ils sont essentiellement les mêmes, à l'exception des utilisateurs système et les répertoires de départ associés sont automatiques. adduser crée automatiquement un répertoire / home / user pour les utilisateurs système, lorsqu'il n'y a pas de provision dans useradd , sauf si spécifié par l' option -m . Les autres lectures que j'ai rencontrées indiquent de manière générique que les UID et GUID sont attribués par des normes Debian conformes acceptées dans adduser..


1
adduser a une option --no-create-home.
ychaouche

1

Dans un couple d'instances Redhat que j'ai vérifiées (4,9 de 2011 et 6,9 de 2017), adduser est simplement un alias pour useradd, pas un script Perl. La voici dans 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

La façon dont je me souviens que useradd est le programme "correct" est la suivante: ajouter un utilisateur n'est qu'une opération du spectre CRUD. Vous devez également avoir besoin des opérations "modifier" et "supprimer" ("read" est probablement couvert en consultant / etc / passwd). Et ainsi, les programmes sont nommés utilisateur * (useradd, usermod et userdel respectivement). Je suppose que la convention de dénomination utilisateur * alternative (adduser, moduser et deluser - elles n'existent pas) pourrait également fonctionner. Mais ce serait légèrement plus gênant (pour une raison que je ne peux pas exprimer clairement pour le moment :)


ne peut pas trouver modusersur Debian, mais deluserest certainement là.
ychaouche

0

Dans Raspian (il faudrait que je vérifie la présence d'autres systèmes d'exploitation), "adduser USER" ouvre une boîte de dialogue (TUI) alors que "useradd USER" ne le fait PAS.

Apparemment, avec adduser, une fois la boîte de dialogue ouverte, la commande complète 'useradd' est déjà exécutée. Même si vous CTRL-C votre utilisateur est là.

Comme dans les nouveaux systèmes, ils créent des groupes "personnels". Pour supprimer l'utilisateur nouvellement créé, vous devez:

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

Je suppose que, parce que adduser "utilise" useradd, le reste est constitué de métadonnées sur l'utilisateur. Donc techniquement, aucun changement dans "skel", "masques de fichiers", ou similaires, c'est à dire vos paramètres système par défaut.

D'un autre côté, comme useradd n'apporte aucune TUI, cela pourrait être plus utile dans les scripts.

Pour être honnête, je l’ai testé uniquement en rasbian, car c’est la raison pour laquelle j’ai posé le pied sur la question.

Je peux imaginer que d'autres systèmes d'exploitation pourraient implémenter une version différente de adduser.

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.