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.
useradd
est un binaire natif compilé avec le système. Cependant, adduser
est un script Perl qui utilise le binaire useradd
en back-end.
adduser
est plus convivial et interactif que son back-end useradd
. Il n'y a pas de différence dans les fonctionnalités fournies.
Le principal avantage de adduser par rapport à useradd concerne les utilisateurs du système. Avec adduser le compte des utilisateurs de niveau système lors de sa création place un répertoire d'utilisateurs à la maison 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 personnels associés sont automatiques. adduser crée automatiquement un répertoire/home/user pour les utilisateurs système, sans aucune 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 UID et GUID sont attribués par des normes Debian conformes acceptées dans adduser .
Dans quelques exemples de Redhat que j'ai vérifiés (4,9 de 2011 et 6,9 de 2017), adduser est simplement un alias de 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: l'ajout d'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 par l'affichage de/etc/passwd). Et ainsi, les programmes sont nommés utilisateur * (useradd, usermod et userdel respectivement). Je suppose que la convention de dénomination * utilisateur (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 :)