Aller au contenu

Featured Replies

Posté(e)

Bonjour à tous,

Je ne sais pas si je suis au bon endroit désolé si c'est le cas mais voila je me retrouve confronté à un problème de lancement de script shell via une page php.

Voici les morceaux de code utilisé :

Php :


if(isset($_POST['Pseudo']) && isset($_POST['Pass']))

	{

		$pseudo = $_POST['Pseudo'];

		$pass = $_POST['Pass'];

		$cmd = 'sh /usr/createUser.sh ' . $pseudo . ' ' . $pass . ' test@gmail.com';

		if(file_exists('/usr/createUser.sh'))

		{

			echo 'je l ai trouvé';

			echo $cmd;

			$outpout = exec($cmd);

			echo $outpout;	

		}

		else

		{

			echo 'pas trouvé';

		}



	}

mon script shell createUser :

 #!/bin/bach


synouser --add $1 $2 $1 0 $3 1


voila je cherchea partir d'une page web a créer un utilisateur sur mon syno.

J'ai testé le script via ssh il fonctionne mais pour je ne sais quel raison il ne fonctionne pas a partir de mon script php :/

quelqu'un aurait une réponse?

Merci d'avance

Posté(e)
  • Auteur

bon alors j'ai rajouter avec ipkg la commande sudo sur mon syno ce qui fait que mon script se lance m

Posté(e)

Bonjour

Posté(e)
  • Auteur

Je viens de tester, et cela ne marche pas :/ il ne prend pas en compte le synouser :/ toujours l'erreur 127 snif

Posté(e)

J'ai trouver :)

Pour les suivants que ca pourrais int

Posté(e)
  • Auteur

pourtant c'est la solution donné par le support synology lol

enfin si quelqu'un a une meilleur idée :je suis prenneur :P

Posté(e)

pourtant c'est la solution donn

Posté(e)
  • Auteur

dans un premier temps j'ai mis pour sudo ALL = ALL(ALL) ALL pour pouvoir tester avec n'importe quel utilisateur mais m

Posté(e)

dans un premier temps j'ai mis pour sudo ALL = ALL(ALL) ALL pour pouvoir tester avec n'importe quel utilisateur mais m

Posté(e)

Oui tu as installé "sudo" avec IPKG, pour avoir le chemin complet tu tape

which sudo

Et tu utilise ce chemin complet dans ta commande

Patrick

  • 7 mois après...
Posté(e)

Bonjour à tous,

Avez-vous finalement trouvé une solution sécurisée pour créer des utilisateurs depuis une page web ?

Posté(e)

Je suppose que c'est pour automatiser la création de comptes utilisateurs ?

Le plus simple serait d'installer le paquet Directory Server (serveur LDAP) depuis le Centre de packages et d'utiliser les fonctions LDAP de PHP pour gérer les utilisateurs.

L'extension LDAP pour PHP est d'ailleurs installée par défaut sur le NAS.

Je trouve ça beaucoup plus souple et plus propre que tout ce que j'ai pu lire plus haut.

Posté(e)

Merci pour cette idée.

En effet mon but est d'automatiser la création d'utilisateurs avec un simple formulaire html.

Je suis ouvert à toute proposition et ne connaissant pas LDAP je vais faire quelques essais !

Posté(e)

J'ai fouillé un peu et les fonctions LDAP en PHP ont l'air assez facil à ustiliser, ce qui m'embete c'est qu'il fait renseigner le mot de passe du serveur LDAP dans le script. Comment faire pour que le script qui executera la commande ldap_connect ne soit pas visible sur le web ?

Posté(e)

Mais ce script n'a de toute facon pas à être visible depuis internet...

Patrick

Posté(e)

D'accord c'est rassurant mais je débute et je ne sais pas ou je dois placer mon script pour qu'il soit accessible depuis ma page principale sans que les internautes puissent le voir.

Posté(e)

Si tu n'as jamais fait de PHP, tu risques de passer (ou perdre) beaucoup de temps.

Un script PHP n'est pas visible par les clients, seul le résultat de l'interprétation du script est visible.

  • 2 semaines après...
Posté(e)

Bonjour,

Grâce à vos réponse je me suis lancé dans l'utilisation du serveur LDAP. J'utilise donc les fonctions ldap_connect et ldap_bind pour m'authentifier sur le serveur. Après avoir cherché un moment je me suis aperçu que les fonction LDAP du module PHP n'étaient pas activée, je les ai activé. Cependant le résultat n'est pas très concluant, j'espère que quelqu'un pourra m'aider. Voila les info de Directory Server :

----Serveur----

FQDN : nom

Mot de passe : passwd

----Information d'authentification----

base dn : dc = nom

bind dn : uid=root, cn=users, dc=nom

J'ai donc utilisé le code suivant :


$ds=ldap_connect("http://www.mondomaine.tld",389)

or exit ("Echec connexion");

echo $ds;

if ($ds==1)

  {

  $r=ldap_bind("uid=root,cn=users,dc=nom");

// Ici les opérations à effectuer

echo "Déconnexion...<br>";

ldap_close($ds);

  }

else {

echo  "Impossible de se connecter au serveur LDAP";

  }

1) Lorsque j'utilise localhost au lieu de http://www.mondomaine.net j'obtiens l'erreur : "Resource id #58Impossible de se connecter au serveur LDAP"

2) En utilisant http://www.mondomaine.net ça va un peu plus loin mais j'obtiens l'erreur : "Warning: ldap_connect(): Could not create session handle: Bad parameter to an ldap routine in /volume1/web/.../sidebar.php on line 67" la ligne 67 étant le fonction ldap_connect()

Savez vous d'où cela peut il venir ? La fonction ldap_connect a pourtant l'air simple et contient peu de paramètres mais je n'y arrive pas :-(

Merci d'avance pour votre aide.

Posté(e)

Regarde la documentation de la fonction ldap_connect().

Il faut utiliser une URL ldap:// et non http://.

Posté(e)

J'ai testé également mais ça me donne à nouveau l'erreur "Resource id #58Impossible de se connecter au serveur LDAP"

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.

Invité
Répondre à ce sujet…

Qui est en ligne (Afficher la liste complète)

  • Il n’y a aucun utilisateur enregistré actuellement en ligne

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.