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?
linux
debian
user-management
Petr Pudlák
la source
la source
useradd
est disponible sur toutes les plates-formes de type Unix.adduser
est uniquement pour Debian et ses dérivés.Réponses:
useradd
est un binaire natif compilé avec le système. Mais,adduser
est un script Perl qui utilise leuseradd
binaire en back-end.adduser
est plus convivial et interactif que son back-enduseradd
. Il n'y a aucune différence dans les fonctionnalités fournies.la source
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..
la source
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:
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 :)
la source
moduser
sur Debian, maisdeluser
est certainement là.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:
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.
la source