Comment quelqu'un devrait-il créer un mot de passe crypté pour / etc / shadow?

9

Je configure un nouveau compte sur une boîte Linux pour l'accès au référentiel Subversion et je peux envoyer le mot de passe au nouvel utilisateur. Cependant, je pense qu'il y avait un utilitaire de ligne de commande pour ce nouvel utilisateur pour crypter le mot de passe qu'il aime dans un format que je peux copier / coller directement dans le fichier / etc / shadow.

Quelle était la commande complète que ce nouvel utilisateur devrait exécuter sur la console (par exemple Bash) pour créer un tel mot de passe crypté?

MISE À JOUR: l'utilisateur ne sera pas autorisé à se connecter sur la machine, et le compte sera simplement utilisé pour l'accès svn + ssh: //. Par conséquent, l'utilisateur ne peut pas le modifier lui-même.

Egon Willighagen
la source
L'utilisateur pose des questions sur les scripts bash, car il ne va évidemment pas le faire manuellement.
Tim Post

Réponses:

15

l'utilisateur peut exécuter sur son ordinateur quelque chose comme:

echo "password"|openssl passwd -1 -stdin

puis vous envoyer la sortie.

Daniel
la source
+1 fait exactement ce que vous recherchez.
Antoine Benkemoun
Pourquoi cette commande donne-t-elle une valeur différente à chaque fois que je l'appelle?
Egon Willighagen
2
Le format de la sortie est crypté $ id $ salt $. Un identifiant différent et un sel différent vous donnent une chaîne cryptée différente. L'identifiant est l'algorithme utilisé: 0-DES, 1-> MD5, 2a-> Blowfish, 5-> SHA-256, 6-> SHA512
Gonzalo
OK, j'ai donc besoin de comprendre comment déclencher un certain identifiant (qui était le même tout le temps) et le sel (qui changeait à chaque appel) ... est logique.
Egon Willighagen
2

Le format du mot de passe dans l'ombre peut varier. Vous pouvez le définir comme MD5 ou le bon vieux DES3 ou ... Vous êtes bon d'envoyer un mot de passe à votre utilisateur et de le forcer à le changer lors de la première connexion ( # chage -d 0 username)

Gonzalo
la source
1

Au lieu de leur demander de crypter le mot de passe et de vous l'envoyer, pourquoi ne pas simplement leur dire de taper:

passwd

Il fera tout ce que vous voulez avec l'avantage supplémentaire de pouvoir changer leurs mots de passe sans aucun travail supplémentaire pour vous.

EDIT: Selon cela , il y aurait une commande appelée makepassword que vous pouvez obtenir pour Debian / Ubuntu.

Brendan Long
la source
Parce que cela nécessite que l'utilisateur soit déjà connecté. L'OP souhaite une solution pour définir le mot de passe en toute sécurité avant que l'utilisateur ne se connecte pour la première fois.
Daniel Pryden
1
Il semble que générer un mot de passe au hasard et les faire changer quand ils se connectent est tout aussi sûr que de les générer et de les ajouter manuellement.
Brendan Long
L'utilisateur ne se connectera jamais (shell: / bin / false), et n'autorisera que l'accès en lecture / écriture SVN ...
Egon Willighagen
2
Vous pouvez définir shell: / usr / bin / passwd: D
Brendan Long
1
Je veux dire ce dernier commentaire comme une blague, mais apparemment, cela fonctionnera: markmail.org/message/ekuxvnhdagywy4i5
Brendan Long
0

/ etc / passwd et / etc / shadow sont très faciles à symboliser avec les outils de ligne de commande habituels (ie grep, awk, sed, tr, etc).

Ce qui devient intéressant, c'est le champ de hachage du mot de passe dans / etc / shadow, son préfixe vous indique comment le mot de passe a été chiffré. De l'homme (5) ombre:

The password field must be filled. The encrypted password consists of 13 to 24 characters from the 64 characters alphabet a thru z, A
thru Z, 0 thru 9, \. and /. Optionally it can start with a "$" character. This means the encrypted password was generated using another
(not DES) algorithm. For example if it starts with "$1$" it means the MD5-based algorithm was used.

La façon dont il a été crypté dépend largement de l'âge du système d'exploitation installé. Il est important de porter une attention particulière au deuxième champ dans / etc / shadow.

Vous devez vous efforcer de suivre le hachage utilisé par le système, que ce soit DES, MD5, etc., car il est si facile à détecter.

Tim Post
la source
0

Pourquoi ne pas entrer dans l'utilisateur et exécuter passwd?

Esben Skov Pedersen
la source
Parce que je ne veux pas connaître le mot de passe ... ou me le faire envoyer sous une forme non cryptée.
Egon Willighagen
0

Existe-t-il un moyen de générer ces mots de passe via la ligne de commande? Oui, avec le paquet Debian makepasswd (mais uniquement pour MD5):

echo "mypasswd" | makepasswd --crypt-md5
$1$r2elYKyB$vUr/Ph.brKTldM2h2k8J5.

Mais cela ne fonctionnera pas via copier-coller dans / etc / shadow Pour changer le mot de passe via un script dans certaines distributions Linux, vous pouvez utiliser:

echo oracle:mypasswd | chpasswd

ou

echo -n mypasswd | passwd --stdin oracle

la source