j'ai donc quelque nouvelle.
J'ai fini par réussir à décrypter la clé sans mot de passe, c'est pas spécialement sécuriser mais c'est une démo. j'ai donc modifier mon code php pour intégrer la ligne
sudo -u wapt /opt/wapt/bin/python /opt/wapt/testarg.py 0019ECDE-E109-DE11-AEAF-0025111B87F7add remove
(commande que j'ai créer pour automatiser le tout)
Problème, le commande ne renvoie rien et ne fonctionne pas, j'ai donc pris les devant et découvert que pour x raison peut importe les droit que je lui accorde nginx ne peut pas faire le sudo.
La solution que j'ai utiliser est modifier dans php-fpm l'utilisateur par wapt.
si j'effectue la commande whoami sur le php elle me retourne wapt je suis donc sur le bon utilisateur. J'ai aussi modifier ma commande par
/opt/wapt/bin/python /opt/wapt/testarg.py 0019ECDE-E109-DE11-AEAF-0025111B87F7add remove
puisque le sudo est supposer être inutile.
Et la surprise, sa ne marche toujours pas.
j'ai donc modifier le fichier /etc/passwd pour autoriser la connexion avec l'utilisateur wapt pour pouvoir me connecter et testé la commande directement sur la console.
Et la surprise sa fonctionne !
J'ai donc supposer que quelque chose dans le python bloque le php.
J'ai donc ajouter des print a chaque ligne de mon code :
Code : Tout sélectionner
from waptpackage import PackageEntry,WaptLocalRepo
from waptcrypto import SSLCABundle,SSLPrivateKey,SSLCertificate
import sys
arg=""
#Configuration
certpub="/opt/wapt/wapt.crt"
privatekey="/opt/wapt/wapt.pem"
if len(sys.argv)>2:
for i in sys.argv:
if not i==sys.argv[0]:
arg=arg+i+" "
arg=arg.split("add")
print("1")
option=arg[1].split("remove")
print("2")
uuid_machine=arg[0]
print("3")
adddepend=option[0].split(" ")
print("4")
removedepend=option[1].split(" ")
print("5")
adddepend.remove("")
print("6")
removedepend.remove("")
print("7")
adddepend.remove("")
print("8")
removedepend.remove("")
print("9")
ca_bundle = SSLCABundle()
print("10")
signers_bundle = SSLCABundle()
print("11")
signers_bundle.add_certificates_from_pem(pem_filename=certpub)
print("12")
key = SSLPrivateKey(privatekey)
print("13")
pe = PackageEntry(waptfile = "/var/www/html/wapt-host/%s.wapt" % uuid_machine)
print("14")
depends = pe.depends.split(',')
print("15")
if len(adddepend)>0:
print("16")
for dep in adddepend:
if not dep in depends:
depends.append(dep)
if not len(removedepend)<=0:
print("17")
for dep in removedepend:
if dep in depends:
depends.remove(dep)
print("18")
pe.depends = ','.join(depends)
print("19")
pe.inc_build()
print("20")
pe.sign_package(private_key=key,certificate = signers_bundle.certificates())
print("21")
print("Modification reussite")
else:
print("Erreur pas assez d arguments ont ete saisis")
/opt/wapt/bin/python /opt/wapt/testarg.py 0019ECDE-E109-DE11-AEAF-0025111B87F7add remove1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 18 19 20
Ce qui veux dire qu'il bloque ici :
Code : Tout sélectionner
pe.sign_package(private_key=key,certificate = signers_bundle.certificates())
Système : Centos7
Version de wapt : 1.7.4
Version de php : 7.2.19