J'exécute la useradd {user}
commande pour ajouter des utilisateurs à mon système, bien que je prévoie de l'exécuter dans un environnement automatisé, qui pourrait éventuellement être réexécuté, même si l'utilisateur existe déjà.
Existe-t-il un moyen de ne pouvoir l'exécuter que si l'utilisateur n'existe pas déjà? L'utilisateur n'a pas de dossier personnel.
adduser
est généralement préféré sur les systèmes Debian / Ubuntu.useradd
.Réponses:
id -u somename
renvoie un code de sortie différent de zéro lorsque l'utilisateur n'existe pas.Vous pouvez le tester tout simplement ... (
&>/dev/null
supprime simplement la sortie normale / avertissement)la source
essaye ça:
ou même ceci:
la source
À moins que vous n'ayez qu'une poignée de systèmes, vous posez la mauvaise question. La solution n'est pas d'exécuter useradd du tout, mais de laisser ce travail à une solution de gestion de la configuration telle que marionnette ou chef. Cela permettra de centraliser vos définitions d'utilisateurs et vous empêchera d'exécuter des boucles et d'utiliser ssh avec les utilisateurs root afin de configurer vos systèmes. Vous aurez toujours des systèmes dans un état de configuration connu.
La documentation pour les marionnettes est disponible à http://docs.puppetlabs.com
Par exemple dans la marionnette:
la source
Si useradd n'ajoute pas l'utilisateur s'il existe déjà, il a l'intention de s'assurer que le numéro et le nom d'utilisateur sont uniques. Si vous prévoyez de parcourir un lot, assurez-vous que les UID utilisés sont uniques. useradd se plaindrait pour les entrées problématiques et vous devez capturer les erreurs / stderr pour voir quels comptes d'utilisateurs ont eu des problèmes pour accéder aux systèmes de comptes (/ etc / passwd, groupe, shadow).
la source