MS_Totor Posté(e) le 24 novembre 2009 Posté(e) le 24 novembre 2009 salut tu dois avoir des solutions en orientants tes recherches sur le portage de ldap (ipkg) et appel de fonction php vers ldap 0 Citer
Diaoul Posté(e) le 24 novembre 2009 Posté(e) le 24 novembre 2009 Que souhaites-tu que ces utilisateurs puissent faire via ce portail ? N'oublie as qu'apache est lanc 0 Citer
nla Posté(e) le 27 novembre 2009 Auteur Posté(e) le 27 novembre 2009 mots de passe dans /etc/shadow, cryptage md5 probablement (regarde si le mot de passe commence par $1$) Merci cricx pour ta réponse car c'est effectivement bien ce que je cherchais :-) Par contre les mdp commencent bien par $1$, c'est donc du md5 avec un SALT car on retrouve le formalise : $1$XX$yyyyyyyyyyyyyyyy J'ai donc tout essayé du coté php pour comprendre comment été généré le "yyyyyyyyyyyyyy" mais je ne trouve pas. ça ne correspond pas à la fonction crypt, md5, ... J'ai bien peur que sans le "SALT", je ne pourrais jamais réutiliser ces données ... une idée ? A part si bien sur, on peut retrouver le contenu du SALT quelque part dans un fichier ;-) Merci encore 0 Citer
nla Posté(e) le 2 décembre 2009 Auteur Posté(e) le 2 décembre 2009 tu devrais pouvoir utiliser depuis php le programme passwd avec la fonction exec() Merci ... je pensais que "passwd" 0 Citer
cricx Posté(e) le 2 décembre 2009 Posté(e) le 2 décembre 2009 Merci ... je pensais que "passwd" était pour changer un mot de passe existant. oui. c'est openssl passwd (openssl passwd -1 -salt les8caractèresquisuiventledeuxième$) le hash est les X qui suivent le 2ème $ ($XXXXXXXX) après le $1 makepasswd ou makepasswd2 peuvent peut-être aussi faire l'affaire Mais l'idée d'appeler un fonction linux me parait intéressante ... je ne connais pas bien linux mais je vais bien pouvoir trouver une fonction qui permet de dire si un pwd est bon le principe est d'appliquer la même fonction de cryptage au mot de passe saisi que celle qui a servi pour le mot de passe système. 0 Citer
nla Posté(e) le 10 décembre 2009 Auteur Posté(e) le 10 décembre 2009 Merci bien cricx ... j'y suis arrivé :-) Donc pour ceux que ça intéresse, voici le petit bout de code qui permet de vérifier que le couple login/mdp existe bien sur le syno. if ( isset($_POST['nom']) && isset($_POST['mdp']) && !empty($_POST['nom']) && !empty($_POST['mdp']) ){ $shadow = popen('cat /etc/shadow | grep \''.$_POST['nom'].'\' 2>&1', 'r'); $utilisateur = fread($shadow, 2096); pclose($shadow); if( !empty($utilisateur) ) { //Récupérer les infos de l'utilisateur depuis shadow infos_utilisateur_depuis_shadow = split(':', $utilisateur, 3); //Extraire le SALT $salt=substr($infos_utilisateur_depuis_shadow[1], 0, 12); //Crypter le mot de passe fourni $pass_crypt=crypt($_POST['mdp'], $salt); //Comparer le mdp fourni avec celui du shadow if($pass_crypt == $infos_utilisateur_depuis_shadow[1]) { #Mdp correct #Mettre votre traitement }else{ #Mdp faux #Mettre votre traitement } } } ça peut se mettre sans probleme dans une fonction. Dans mon cas, c'est une vérification en ajax qui est faite d'ou les POST nom et mdp Voila ... merci encore pour le coup de main ;-) NLA 0 Citer
cricx Posté(e) le 10 décembre 2009 Posté(e) le 10 décembre 2009 Merci bien cricx ... j'y suis arriv 0 Citer
deihnyx Posté(e) le 1 octobre 2010 Posté(e) le 1 octobre 2010 Bonjour, je me permets de relancer le topic car je recherche à peu près la même chose que le posteur. J'ai essayé sa méthode. Je ne sais pas si cela vient du firmware 3.0 mais le fichier shadow n'est pas visible par l'utilisateur apache, au pire il faut changer les droits de lecture pour permettre la lecture à apache, mais à chaque changement de mot de passe ou nouvel utilisateur, la sécurité du syno remet le fichier shadow à 700. J'ai également essayé d'obtenir une connexion en passant par php et curl, mais j'ai beau imiter le referer, envoyer les données post appropriées et les cookie le renvoie de message est toujours le même: error_cantlogin. Je désespère de trouver une solution car j'apprécierai vraiment de pouvoir utiliser ces informations de connexion, plutot que de devoir coder un second programme de login, non pas que ça soit difficile mais c'est juste pas très ergo. En vous remerciant d'avance pour vos réponses, Deihnyx 0 Citer
tomazzi Posté(e) le 15 novembre 2010 Posté(e) le 15 novembre 2010 Hello ! Up sur ce topic qui m'int 0 Citer
romain74960 Posté(e) le 15 novembre 2010 Posté(e) le 15 novembre 2010 salut sur le principe il ne faut pas que les persones aient acces avec les meme mots de passe et identifiant a deux fonctions sur le net. dans l id 0 Citer
tomazzi Posté(e) le 15 novembre 2010 Posté(e) le 15 novembre 2010 Oui, c'est ce que je voudrais 0 Citer
silversmarty Posté(e) le 26 janvier 2012 Posté(e) le 26 janvier 2012 Je cherche la même fonction (identification des users sur le WebStation), mais le script proposé plus haut ne marche plus ...(DSM 4.0 béta) Autre solution trouvée sur le forum synology.com : utiliser la commande exec() en PHP, mais celle-ci est désactivée par défaut (l'activer peut engendrer des pb de sécurité)... Dernière idée : s'inspirer du SPK de VideoStation qui permet de s'authentifier en utilisant login et mdp du syno ... à creuser ! 0 Citer
PatrickH Posté(e) le 26 janvier 2012 Posté(e) le 26 janvier 2012 Tu pourrais préciser quel script ne marche plus et quel est le message d'erreur ? Patrick 0 Citer
silversmarty Posté(e) le 26 janvier 2012 Posté(e) le 26 janvier 2012 je veux parler du seul script publié dans ce fil : celui du message #11 Message d'erreur : aucun, le script n'affiche rien (enfin, la fonction ne retourne rien, ni en cas de succès ni en cas d'échec). Est-ce que l'emplacement du fichier a changé ? Je ne sais pas ... 0 Citer
devildant Posté(e) le 26 janvier 2012 Posté(e) le 26 janvier 2012 (modifié) bonjour, i y a beaucoup plus simple http://ip-syno/webma...asswd=PASS_USER vous allez recuperer des messages si c correct ou non a vous de les parser cordialement Modifié le 26 janvier 2012 par devildant 0 Citer
silversmarty Posté(e) le 26 janvier 2012 Posté(e) le 26 janvier 2012 effectivement, c'est la solution qui est utilisée dans VideoStation. session_start(); function login($user,$pass,$cookie,$port){ if($port=='5001') $http = 'https://'; else $http = 'http://'; $urlSyno=$http."localhost".':'.$port.'/webman/login.cgi?username='.$user.'&passwd='.$pass; $reponseLogin = file_get_contents($urlSyno); if (json_decode($reponseLogin)->{'success'}){ $_SESSION['user'] = $user; if($cookie == 'on'){ $expire = 365*24*3600; setcookie('user',$user,time()+$expire); } return 1; } else return 0; } function logout(){ session_unset(); session_destroy(); setcookie('user'); } 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.