vérifiez le nom d'utilisateur unix et mot de passe dans un shell script
Je veux vérifier dans un script shell, si un local unix de l'utilisateur est transmis nom d'utilisateur et mot de passe sont corrects. Quelle est la meilleure façon de le faire?
Seule chose que j'ai trouvé tout googler a l'aide de "prévoir" et " su "et puis de vérifier, en quelque sorte, si le" su " a été un succès ou pas.
- Plus de détails sur ce que vous essayez d'accomplir et ce que votre script peut aider.
Vous devez vous connecter pour publier un commentaire.
le nom d'utilisateur et les mots de passe sont écrits dans le
/etc/shadow
fichier.juste obtenir de l'utilisateur et le hachage de mot de passe à partir de là (
sed
aiderait), hash votre propre mot de passe et vérifier.utilisation mkpasswd pour générer le hachage.
vous hve regarder qui de sel que votre version est à l'aide. le plus récent de l'ombre est à l'aide de
sha-512
donc :pages de manuel peut vous y aider beaucoup.
Plus facile serait d'utiliser le php et le pam-aut module. il vous permet de vérifier vie de php sur l'accès au groupe ddt de l'utilisateur.
/etc/shadow
Sur Linux, vous aurez besoin d'écrire un petit programme en C qui appelle
pam_authenticate()
. Si l'appel renvoiePAM_SUCCESS
, puis le login et le mot de passe sont corrects.Ok, maintenant c'est le script que j'ai utilisé pour résoudre mon problème. J'ai d'abord essayé d'écrire un petit c-programm comme susgested par Aaron Digulla, mais qui s'est avéré beaucoup trop difficile.
Peut-être ce Script est utile à quelqu'un d'autre.
export LC_ALL=C
au début du script serait de faire travailler les systèmes avec une autre langue par défaut, il serait à définir la langue anglaise pour ce script d'exécution, comme il est attendu de la chaînePassword:
, voir askubuntu.com/a/264709/18014.Partielle answere serait de vérifier le nom d'utilisateur, est-il défini dans le passwd/ombre fichier dans /etc
calculez ensuite les mots de passe MD5 avec le sel. Si vous avez votre mot de passe utilisateur transmises via le protocole SSL (ou au moins un serveur terminal services).
Ses juste un conseil car je ne sais pas quoi avez-Vous besoin en fait.
Parce que "su" est principalement à des fins d'authentification.
D'autres sujets qui pourraient Vous regarder sont kerberos/LDAP services, mais ceux-ci sont dur sujets.