GNU/Linux >> Tutoriels Linux >  >> Linux

Useradd vs Adduser :quelle est la différence ?

Lorsqu'il s'agit de créer un nouvel utilisateur sous Linux, vous avez la possibilité d'utiliser la commande adduser ou useradd.

Alors, quelle est la différence entre les commandes useradd et adduser ? L'un d'eux est-il meilleur que l'autre ? Lequel devriez-vous utiliser? useradd ou adduser ?

Différence entre les commandes adduser et useradd

Useradd est une commande Linux intégrée qui peut être trouvée sur n'importe quel système Linux. Cependant, la création de nouveaux utilisateurs avec ce bas niveau est une tâche fastidieuse car elle ne crée pas de répertoire personnel ni de mot de passe utilisateur par défaut.

Adduser n'est pas une commande Linux standard. C'est essentiellement un script Perl qui utilise la commande useradd en arrière-plan. Cet utilitaire de haut niveau est plus efficace pour créer correctement de nouveaux utilisateurs sous Linux. Il vous donne la possibilité de créer un répertoire personnel, de définir un mot de passe ainsi que quelques paramètres supplémentaires.

Examinons ces deux commandes et comment elles créent des utilisateurs sous Linux.

Commande Useradd

Voyons d'abord le comportement par défaut de la commande useradd. Avez-vous déjà exécuté la commande suivante ?

useradd new_user

Je n'ai pas encore vu de distribution où cette commande a créé un compte utilisateur complet. Même après avoir défini un mot de passe pour le nouvel utilisateur, vous devrez utiliser des options supplémentaires avec celui-ci.

Par exemple, sur mon système, la commande ci-dessus a ajouté l'entrée suivante dans le fichier /etc/passwd.

Si vous avez lu l'article sur la liste des utilisateurs sous Linux, vous connaissez probablement déjà le contenu du fichier /etc/passwd. Cela a l'air bien au début, mais si vous commencez à creuser, vous remarquerez bientôt que certaines choses ne vont pas tout à fait.

Tout d'abord, le deuxième champ contient "x". Cela signifie que l'espace réservé pour les informations de mot de passe se trouve dans /etc/shadow. Mais je n'ai pas défini de mot de passe. Cela signifie que l'utilisateur test ne pourra pas se connecter.

Deuxièmement, le répertoire personnel. Le truc c'est que /home/test n'existe pas. Même après avoir défini un mot de passe, une erreur se produit si l'utilisateur se connecte. Selon une autre configuration, votre système Linux peut empêcher un utilisateur sans répertoire personnel valide de se connecter. Très probablement, l'utilisateur test seraient autorisés à se connecter à votre système, au moins en mode texte. Mais l'utilisateur teste ne sera pas autorisé à créer son répertoire personnel.

Troisièmement, le shell de connexion par défaut est sh, pas bash. Je n'utilise pas sh comme shell. Vous non plus car bash est le shell par défaut sur la plupart des distributions Linux.

Alors que le comportement de useradd peut être légèrement modifié en éditant /etc/login.defs, il y a peu ou pas de chance que la commande ci-dessus crée un compte utilisateur complet. Useradd est un utilitaire de bas niveau. Pourtant, parcourir les paramètres dans /etc/login.defs peut être utile.

Commande Adduser

La commande Adduser n'est pas disponible sur certaines distributions Linux. Sur d'autres, il s'agit d'un lien symbolique vers useradd. Alors que sur d'autres, c'est un script Perl.

Adduser est un utilitaire interactif de haut niveau. Il utilise l'utilitaire de bas niveau useradd comme backend. Les paramètres dans /etc/login.defs seront utilisés lors de l'utilisation de la commande adduser. Sur les distributions basées sur Debian, même la page de manuel recommande son utilisation plutôt que la commande useradd.

Appeler adduser avec juste un nom d'utilisateur vous guidera à travers une série de questions.

Après avoir répondu à quelques questions, un compte utilisateur complet avec répertoire personnel sera créé. Le nouvel utilisateur est prêt à se connecter via votre gestionnaire de connexion ou en mode texte.

Pour obtenir presque le même résultat en utilisant l'utilitaire de bas niveau useradd, la commande ressemblerait à ceci :

sudo useradd -d /home/test -m -s/bin/bash \ -c FullName,Phone,OtherInfo test && passwd test

Le -c les options peuvent être supprimées sans problème, la liste séparée par des virgules qui suit sont des commentaires ajoutés à /etc/passwd. Mais même dans ce cas, adduser vous permet d'économiser deux commandes supplémentaires.

La commande Adduser a une liste d'options à votre disposition. Voici une courte liste que je pense être la plus utile à connaître. Reportez-vous à l'aide ou à la page de manuel pour plus de détails.

  • system :ajoutez un utilisateur système. Par défaut, les utilisateurs système sont placés dans le groupe nogroup. Pour ajouter un utilisateur système à un groupe existant, fournissez l'option –gid ou –ingroup.
  • home DIR :utilisez DIR comme répertoire personnel au lieu de la valeur par défaut. Un répertoire sera créé si nécessaire et les fichiers squelettes seront copiés.
  • shell SHELL :utilisez SHELL au lieu de la valeur par défaut.
  • ingroup GROUP :définissez le groupe principal de l'utilisateur sur GROUP
  • add_extra_groups :ajoutez un nouvel utilisateur au groupe supplémentaire défini dans le fichier de configuration.

Le fichier de configuration d'Adduser vous permet de définir les valeurs par défaut à utiliser lors de la création du compte. Le fichier est bien documenté et vous permet de définir des valeurs par défaut telles que :

  • Shell par défaut
  • Répertoire d'accueil
  • Groupes supplémentaires
  • Ajouter des groupes supplémentaires

Conclusion

D'après mon expérience personnelle en tant qu'administrateur système, adduser est bien meilleur pour créer de nouveaux utilisateurs sous Linux. Je préfère adduser à useradd n'importe quel jour et je recommande la même chose.

Qu'en pensez-vous? Lequel préférez-vous entre adduser et useradd ?


Linux
  1. Linux vs Unix :Quelle est la différence ?

  2. Quelle est la différence entre adduser et useradd ?

  3. Quelle est la différence entre les options -g et -G dans useradd

  4. A quoi sert l'option -o dans la commande useradd ?

  5. Qu'est-ce que l'utilisateur debian-+ ?

Quelle est la différence entre la commande apt et apt-get ?

La commande d'arrêt ?

iptables vs nftables :quelle est la différence ?

Quelle est la différence entre les commandes kill et killall ?

Qu'est-ce que la commande kill sous Linux ?

useradd vs adduser :quelles sont les différences ?