web-dev-qa-db-fra.com

Que fait adduser que useradd ne fait pas?

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

La plupart des réponses disent essentiellement que adduser fournit 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 lorsque adduser est exécuté qui ne se compare pas à useradd. Donc:

  1. Qu'est-ce que adduser fait que useradd ne fait pas?
  2. Quelles commandes dois-je utiliser pour produire des résultats équivalents?
74
Graeme

Tout d'abord, les extraits de page de manuel respectifs mettent en évidence 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 des interfaces utilisateur plus conviviales pour les outils de bas niveau tels que les programmes useradd, groupadd et usermod, en choisissant par défaut les valeurs UID et GID conformes à la politique Debian, en créant un répertoire personnel avec une configuration squelettique, en exécutant un script personnalisé et d'autres fonctionnalités.

Alors pour useradd:

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

Un examen plus approfondi de adduser révèle qu'il s'agit d'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/modifier les mots de passe des utilisateurs.
  • gpasswd - utilisé pour ajouter/modifier des 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 commande adduser 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 personnel de l'utilisateur (la valeur par défaut est /home/username Et copiez-y les fichiers de /etc/skel.
  3. Créez un groupe avec le même nom que l'utilisateur et placez-y l'utilisateur.
  4. Demander un mot de passe pour l'utilisateur.
  5. Demander des informations supplémentaires sur l'utilisateur.

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

useradd -m -U username
passwd username
chfn username

Notez que adduser garantit que les UID et GID créés sont conformes à la politique Debian . La création d'utilisateurs normaux avec useradd semble correcte, à condition que UID_MIN/UID_MAX Dans /etc/login.defs Corresponde à la politique Debian. Ce qui est un problème cependant, c'est que Debian spécifie une plage particulière pour les UID des utilisateurs système qui ne semble être prise en charge que dans /etc/adduser.conf, Ajoutant ainsi naïvement un utilisateur système avec useradd et sans spécifier un UID/GUID dans la plage correcte laisse le potentiel de graves problèmes.

Une autre utilisation courante de adduser est de simplifier le processus d'ajout d'un utilisateur à un groupe. Ici, la commande suivante:

adduser username newgroup

remplace une commande usermod plus complexe qui nécessite de spécifier les groupes dont l'utilisateur est déjà membre (et que vous souhaitez que l'utilisateur reste membre):

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

Un inconvénient de l'utilisation de adduser ici est que vous ne pouvez spécifier qu'un seul groupe à la fois.

82
Graeme

La commande adduser crée par défaut également un répertoire/home/user pour les utilisateurs système, ce que vous ne pouvez pas faire avec la commande seradd. useradd n'ajoute des répertoires personnels qu'aux utilisateurs normaux et non aux utilisateurs système.

2
MFPII

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

1
niten1