2017-06-28 5 views
0

J'essaye de changer le mot de passe root sous Solaris en une seule commande. Jusqu'ici j'ai essayé:Changement de mot de passe Solaris/Unix en ligne

echo "password" | passwd --stdin root 

renvoie l'option illégale - stdin sur Solaris.

echo -e "password\npassword" | passwd root 

Retourne une invite 'Nouveau mot de passe'. Utilisation de Solaris 10 et Bash 3.2.51 pour le script.

Répondre

2
  1. Vous pouvez le faire via attendre.
  2. Vous pouvez éditer directement le fichier/etc/shadow avec sed ou perl (bien sûr, vous devez d'abord hacher votre mot de passe, mais comme vous voulez le coder en dur dans votre script, vous pouvez utiliser un autre système Dans votre script et exécutez le script du système cible, ou hachez-le par vous-même n'est pas si difficile
  3. Dans solaris 11.3 commençant par SRU4 il y a un mot de passe -p pour définir directement le hash du mot de passe. le mot de passe moins obscurcir mettant simplement le hachage dans la ligne de commande

Mais ma vraie réponse est:. ne pas le faire ... juste ne pas le faire en définissant le mot de passe root de cette façon vous essentiellement. écrire un noter avec le marqueur rose, bleu et vert autour de lui avec le mot de passe root en public pour tout le monde qui est sur le système capable d'exécuter ps dans le moment où vous définissez le mot de passe. Et cela n'inclut pas le problème du logiciel de gestion qui place les sorties ps dans des référentiels centraux et met donc cette information totalement hors de contrôle de l'administrateur système.

+0

Expect n'est pas disponible sur Solaris 10. Je devrais peut-être modifier le fichier/etc/shadow, mais cela semble être une solution contondante. – Jelphy

+0

Eh bien, il existe des paquets avec des paquets tiers. De plus, il existe des bibliothèques par exemple pour perl imitant la fonctionnalité attendue. – c0t0d0s0

+0

Je l'ai marqué comme la réponse que je suis allé avec l'option 2. Modification/etc/shadow. Ce [link] (https://unix.stackexchange.com/questions/76313/change-password-of-a-user-in-etc-shadow) a fourni une solution. – Jelphy

1

Passwd ne lit pas à partir de STDIN et Solaris n'a pas la possibilité de lire à partir de STDIN.

Une solution possible est d'utiliser un script expect

voir: http://www.unix.com/solaris/161023-solaris-passwd-script.html

+0

Merci pour votre inscription. Malheureusement, l'attente n'est pas disponible sur Solaris 10. 'which which expect' ne montre aucun résultat. – Jelphy