Qu'est-ce que adduser ne fait pas avec useradd?

71

En plus des useraddsystèmes plus répandus , les systèmes basés sur Debian contiennent également une addusercommande supplémentaire qui fournit une interface de niveau supérieur pour l’ajout d’utilisateurs et certaines tâches connexes. Il existe diverses questions / réponses sur d'autres sites SE qui détaillent les différences fondamentales entre ces commandes, par exemple:

La plupart des réponses disent essentiellement que cela adduserfournit une interface plus agréable pour ajouter des utilisateurs de manière interactive, mais ne donne pas beaucoup de détails sur ce qui se passe quand il adduserest exécuté sans être comparé à useradd. Alors:

  1. Qu'est- adduserce que useraddça ne fait pas?
  2. Quelles commandes dois-je utiliser pour produire des résultats équivalents?
Graeme
la source

Réponses:

79

Tout d’abord, les extraits de page de manuel respectifs soulignent les différences entre les deux commandes et donnent une indication de ce qui se passe. Pour adduser:

adduser et addgroup ajoutent 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 les programmes useradd, groupadd et usermod, 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.

Puis pour useradd:

useradd est un utilitaire de bas niveau permettant d'ajouter des utilisateurs. Sur Debian, les administrateurs devraient généralement utiliser adduser (8) à la place.

Un examen plus approfondi de adduserrévèle que c’est un script Perl fournissant une interface de haut niveau et offrant ainsi certaines des fonctionnalités des commandes suivantes:

  • useradd
  • groupadd
  • passwd - utilisé pour ajouter / changer les mots de passe des utilisateurs.
  • gpasswd - utilisé pour ajouter / changer les mots de passe de groupe.
  • usermod - utilisé pour modifier divers paramètres associés à l'utilisateur.
  • chfn - utilisé pour ajouter / modifier des informations supplémentaires détenues sur un utilisateur.
  • chage - utilisé pour modifier les informations d'expiration du mot de passe.
  • edquota - utilisé pour modifier les quotas d'utilisation du disque.

Une exécution de base de la addusercommande est la suivante:

adduser username

Cette commande simple fera un certain nombre de choses:

  1. Créez l'utilisateur nommé username.
  2. Créez le répertoire de base de l'utilisateur (par défaut, /home/usernamepuis copiez-y les fichiers) /etc/skel.
  3. Créez un groupe avec le même nom que l'utilisateur et placez-le dans ce groupe.
  4. Demander un mot de passe pour l'utilisateur.
  5. Demander des informations supplémentaires sur l'utilisateur.

Le useraddprogramme peut accomplir la plupart de ces tâches, mais il ne le fait pas par défaut et nécessite des options supplémentaires. Certaines informations nécessitent plus de commandes:

useradd -m -U username
passwd username
chfn username

Notez que cela addusergarantit que les UID et les GID créés sont conformes à la politique de Debian . Créer des utilisateurs normaux avec useraddsemble être ok, à condition que UID_MIN/ UID_MAXin /etc/login.defscorresponde à la stratégie Debian. Le problème, c’est que Debian spécifie une plage particulière pour les UID de l’utilisateur système, qui ne semble être prise en charge que dans /etc/adduser.conf. Par conséquent, ajouter naïvement un utilisateur du système useraddsans spécifier un UID / GUID dans la plage correcte risque de poser de sérieux problèmes.

Une autre utilisation courante adduserconsiste à simplifier le processus d’ajout d’un utilisateur à un groupe. Ici, la commande suivante:

adduser username newgroup

remplace une usermodcommande plus complexe qui nécessite que les groupes dont l'utilisateur est déjà membre (et que vous souhaitez que l'utilisateur reste membre) soient spécifiés:

usermod -G all,other,groups,user,is,in,newgroup

L’un des inconvénients de l’utilisation adduserici est que vous ne pouvez spécifier qu’un groupe à la fois.

Graeme
la source
C'est cool! Je ne savais même pas que c'était une question. Faut-il utiliser des mots de passe hachés comme le fait useradd? C'est un très bon travail, au fait.
mikeserv
Je ne sais pas si je suis tout à fait d'accord avec la déclaration "les administrateurs devraient ..." cependant ... Personnellement, je pense que l'administrateur devrait probablement élaborer sa propre politique adduserconformément à une politique à l'échelle du système, mais ce n'est qu'un fauteuil au mieux le quarterback.
mikeserv
@mikeserv, non, il n'y a pas de mots de passe hachés. Il existe un autre programme que vous devez connaître, mais qui chpasswdaccepte les mots de passe hachés stdin. J'attendrai jusqu'à demain avant de mettre à jour cette autre réponse, à mon avis.
Graeme
belle publication. Pour moi un peu trop de détails. Ce qui me manque le plus, c’est qu’il addusera été créé à l’origine pour les administrateurs de serveurs qui avaient fréquemment besoin de créer / modifier / limiter des utilisateurs réels comme sur un serveur de messagerie de l’université. Avec adduservous pouvez automatiser le processus. Cela a un peu changé au cours des années, de sorte useraddqu’à présent, cela peut être trop difficile pour de nombreux administrateurs et adduserest devenu pour eux l’outil de choix.
Sur mon Ubuntu 16.04, -U/ --user-groupsemblent la valeur par défaut.
Franklin Yu
2

La adduser commande par défaut crée également un répertoire / home / utilisateur pour les utilisateurs du système, que vous ne pouvez pas faire avec la useradd commande. useradd ajoute uniquement des répertoires de base pour les utilisateurs normaux et non pour les utilisateurs du système.

MFPII
la source
1

L'administrateur système peut faire n'importe quoi avec useradd et adduser. Il a été indiqué ici que vous ne pouvez pas créer de répertoire / home / user pour les utilisateurs du système avec useradd, et vous le pouvez absolument, en modifiant les fichiers contenus dans / etc / skel. / etc / skel contient l'ensemble des fichiers initialement utilisés pour remplir le répertoire de base d'un nouvel utilisateur.

niten1
la source