J'ai trouvé un guide qui explique comment définir le mot de passe d'un utilisateur . J'essaie de l'automatiser et d'envoyer un e-mail à l'utilisateur comme:
userid created with password XYZ.
request to change the initial password.
Selon le document ci-dessus, un mot de passe crypté doit être créé à l'aide de Python et alimenté à la usermod
commande comme ceci:
usermod -p "<encrypted-password>" <username>
Existe-t-il d'autres moyens plus simples de procéder? Je ne veux télécharger aucun utilitaire spécial pour le faire; elle doit être généralisée autant que possible.
Edit : Même la méthode indiquée dans le lien ci-dessus ne semble pas fonctionner pour moi:
bash-3.00# python
Python 2.4.6 (#1, Dec 13 2009, 23:43:51) [C] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> import crypt; print crypt.crypt("<password>","<salt>")
<sOMrcxm7pCPI
>>> ^D
bash-3.00# useradd -g other -p "sOMrcxm7pCPI" -G bin,sys -m -s /usr/bin/bash mukesh2
UX: useradd: ERROR: project sOMrcxm7pCPI does not exist. Choose another.
UX: useradd: sOMrcxm7pCPI name should be all lower case or numeric.
usermod
lorsque quelqu'un utiliseps
pour voir le processus répertoriant le mot de passe est visibleRéponses:
Vous pouvez utiliser
chpasswd
pour le faire, comme ceci:Vous pouvez diriger à
chpasswd
partir de programmes autres queecho
, si cela vous convient, mais cela fera l'affaire.Modifier: pour générer le mot de passe dans le script shell puis le définir, vous pouvez faire quelque chose comme ceci:
Pour plus d'informations sur
chpasswd
, voir http://linux.die.net/man/8/chpasswd(La commande pour générer le mot de passe provenait de http://nixcraft.com/shell-scripting/13454-command-generate-random-password-string.html )
la source
sudo echo "username:newpass" | chpasswd
? Étant donné que les autorisations élevées desudo
ne passent pas par le canal,chpasswd
elles s'exécuteraient en tant qu'utilisateur normal. Il peut être corrigé en déplaçant lesudo
, comme dansecho "username:newpass" | sudo chpasswd
. Il existe également d'autres problèmes qui peuvent provoquer ce message d'erreur, mais les erreurs d'autorisation comme celle-ci sont probablement les plus courantes.Vous pouvez utiliser OpenSSL pour générer le mot de passe aléatoire (16 caractères, dans ce cas):
Donnez ensuite le mot de passe haché à
useradd
ouusermod
Crédit à échéance: la génération du mot de passe est adaptée à partir d'une méthode similaire qui utilise à la
/dev/urandom
place deopenssl
.la source
useradd devrait fonctionner (je l'ai fait sur Ubuntu). Vérifiez peut-être que chacun de vos arguments est correct (vous avez des groupes, le chemin est juste pour bash). Vous pouvez exécuter la commande avec juste un mot de passe et un utilisateur, puis utiliser userdel pour supprimer puis réessayer avec plus de paramètres, pour voir ce que l'on cause le problème (approche par force brute).
Il y a aussi de nouveaux utilisateurs (voir la page de manuel), au moins sous Ubuntu, où vous lui donnez un fichier avec un fichier passwd comme info, y compris des mots de passe en texte brut et il créera ces utilisateurs. Belle façon de faire de nombreux utilisateurs à la fois.
la source
newusers
commande pour Ubuntumoyen le plus simple que j'ai trouvé:
la source
passwd: unrecognized option '--stdin'