Exécuter des commandes yunohost via PHP

Matériel: Machine virtuelle (VirtualBox) tournant sur PC
J’ai accès à mon serveur : En SSH | Par la webadmin | Par la console | En SFTP via FileZila
Êtes-vous dans un contexte particulier ou avez-vous effectué des modificiations particulières sur votre instance ? : non

Bonjour,

pour un projet pédagogique, je cherche dans un premier temps à faire un portail d’inscription. Pour ce faire, je souhaite faire exécuter des commandes Yunhohost à PHP (langage que je découvre). Je passe par une application Custom WebApp que j’ai modifiée pour en faire un formulaire d’inscription. L’application fonctionne et peut faire tourner du code PHP.
<?php echo exec('whoami'); ?> me renvoie my_webapp. Je ne peux pas exécuter les commandes YNH via PHP car my_webapp ne possède les droits je présume.

Existe-t-il un moyen de donner le droit à my_webapp d’exécuter des commandes YNH. Ou alors de définir root ou admin comme utilisateur de PHP ?

J’ai aussi essayé de passer par yunohost-api-php (https://github.com/scith/yunohost-api-php), qui répond en théorie exactement à ma problématique, sans succès.

Pour info voici ma version de PHP : 7.3.19-1~deb10u1

Si vous avez une piste je suis preneur, merci d’avance :slightly_smiling_face:

Tu peux le faire en modifiant le fichier sudoers. Tu peux probablement t’inspirer de ce que fait le paquet vpnclient https://github.com/labriqueinternet/vpnclient_ynh/blob/testing/conf/sudoers.conf

Scith ne maintient plus cette librairie je pense. Il n’est plus trop actif sur ynh depuis déjà plusieurs années.

Sinon pour info, ici est décrit le code qui est envisagé pour remplir la fonction que tu cherches à créer : Allow users to self-register (or with invitation link) · Issue #1677 · YunoHost/issues · GitHub . Je bosse dessus ce week end justement .

Merci beaucoup pour ta réponse ljf.

Tu peux le faire en modifiant le fichier sudoers.

Une simple modification du fichier etc/sudoers a effectivement suffit. Il fallait ajouter la ligne suivante :
my_webapp ALL=(ALL:ALL) NOPASSWD:ALL

J’ai conscience que niveau sécurité c’est pas terrible mais ça fait entièrement l’affaire pour mon projet.

Merci encore et bonne fêtes.