stolon Posté(e) le 11 mai 2009 Posté(e) le 11 mai 2009 Bonjour cher tous, Je désire utiliser le service web de mon synology pour développer une application RIA. Je peux copier les fichiers via un client ftp, cela fonctionne bien mais l'utilisateur ftp change le shown de mon fichier. Mon problème tient au fait que l'utilisateur par défaut d'apache est nobody, si les fichier sont rwx rwx rwx nobody users mon script php fonctionne, si l'utilisateur est différent par exemple rwx rwx rwx tartenpion users, le script plante sans doute par manque de droits. Je pensais créer un utilisateur nobody et me connecter en ftp ou même en partage windows avec cet utilisateur, ce qui me permettrais de me libérer de la contrainte de refaire le chown sur les fichiers dès que je sauve une modification mais le système me refuse la création d'un utilisateur nobody. Y a t'il moyen d'ajouter un utilsateur Apache en plus de nobody ? quelle serait l'implication si je change nobody pour tartenpion ou duchmoll. Est-t'il possible de changer cela via un .httpd ? Je n'ai rient trouvé de clair sur le net, alors merci par avance de vos réponse.
Diaoul Posté(e) le 11 mai 2009 Posté(e) le 11 mai 2009 Salut, Tu peux changer l'utilisateur qui exécute apache en modifiant deux lignes dans httpd.conf-user dans /usr/syno/apache/conf/ : DiskStation> vi /usr/syno/apache/conf/httpd.conf-user Tu changes : User nobody Group nobody en User root Group root Par contre, dans ce cas, ton apache n'est plus "sécurisé". Si tes pages webs ont des failles, un pirate pourra exécuter du code via des commandes exec(...) de php avec les droits d'admin (root) Fais gaffe PS : Personnellement, je cherche un moyen pour que chaque dossier /home/www/ de chaque utilisateur, exécute un apache avec l'utilisateur en question (ie : Pas nobody ou root). Ainsi, plus de faille de sécurité puisque les droits des utilisateurs sont définis pour qu'ils ne puissent avoir accès qu'à leurs dossiers. J'ai cherché un peu partout, j'ai pas trouvé. Dommage qu'il ne soit pas possible de définir un utilisateur par <Directory> ou par <VirtualHost> dans httpd.conf. J'ai un hébergement mutualisé chez OVH (donc une machine, plusieurs utilisateurs) et quand je fais un exec("whoami") dans une page web, j'ai bien mon utilisateur et non "nobody" donc ça doit être faisable... :/
stolon Posté(e) le 11 mai 2009 Auteur Posté(e) le 11 mai 2009 Hello, merci pour ta réponse, cela fonctionne, par contre c'est vrai que côté sécurité ce n'est pas vraiment la panacée. Je vais utiliser cette solution en attendant de trouver plus sûr. Pour le virtualhost je suis pas certain, mais s'il est possible de créer un hôte virtuel il doit bien avoir un moyen de leur assigner des users, genre: <VirtualHost *:> DocumentRoot /www/example1 ServerName www.example1.com # Autres directives ici oú autre directives, pourrait inclure un User et Group distinct. </VirtualHost> ici un lien qui me parait intéressant. voici un autre lien si je trouve autre chose je l'ajoute illico presto.
Diaoul Posté(e) le 12 mai 2009 Posté(e) le 12 mai 2009 Oui, on peut mettre un user par VHost mais il faut alors utiliser suEXEC. J'ai pas cherché plus loin, mais si c'est une option de compilation pour apache, ça m'étonnerait que Synology l'ait incluse (comme beacoup d'autres hélas) J'ai peut être une solution qui consisterai à lancer un httpd par site. On a bien un httpd système (en root) et un httpd user (en nobody) alors pourquoi pas un httpd site1 (utilisateur user1), site2 (user2) etc... Après, faut voir coté ressources (ce sont des NAS, pas des bêtes de course ), ports d'écoute etc... :/
Max91 Posté(e) le 19 mai 2009 Posté(e) le 19 mai 2009 Hello, merci pour ta réponse, cela fonctionne, par contre c'est vrai que côté sécurité ce n'est pas vraiment la panacée. Je vais utiliser cette solution en attendant de trouver plus sûr. Pour le virtualhost je suis pas certain, mais s'il est possible de créer un hôte virtuel il doit bien avoir un moyen de leur assigner des users, genre: <VirtualHost *:> DocumentRoot /www/example1 ServerName www.example1.com # Autres directives ici oú autre directives, pourrait inclure un User et Group distinct. </VirtualHost> ici un lien qui me parait intéressant. voici un autre lien si je trouve autre chose je l'ajoute illico presto. Bonjour, tu utilise quoi la fonction exec() ? personnellement j'ai modifier le user apache, j'ai désactiver le Safe_mode et ca ne fonctionne pas ... tu as fais comment ? PS je suis su un DS508 firmware 844 Merci d'avance
Diaoul Posté(e) le 19 mai 2009 Posté(e) le 19 mai 2009 Bonjour, tu utilise quoi la fonction exec() ? personnellement j'ai modifier le user apache, j'ai désactiver le Safe_mode et ca ne fonctionne pas ... tu as fais comment ? PS je suis su un DS508 firmware 844 Merci d'avance Quand tu fais un : <?php echo exec('whoami'); ?> Tu obtiens bien root ? Si tu obtiens nobody, il te faut modifier le fichier httpd.conf-user et redémarrer apache (cf plus haut pour les détails). Ciao
stolon Posté(e) le 20 mai 2009 Auteur Posté(e) le 20 mai 2009 Bonjour, Oui il faut redémarrer le serveur après avoir modifié nobody en root dans httpd.conf-user dans /usr/syno/apache/conf/. Ceci dit cela ne règle vraiment pas tous les problèmes. D'une part la sécurité prend un grand coup dans les dents, d'autre part, je ne sais pas si c'est moi qui yoyotte, mais les droits ont un comportement étrange. Je peux créer des utilisateurs ftp avec une racine spécifique, mais ce n'est pas le même dossier que le "VirtualHost". Cela empêche de charger des documents en ftp sur le site web du même utilisateur, désillusion.... Comme je n'ai pas envie de bidouiller cela pour l'instant de peur de faire une manoeuvre à la con qui me bouzille mes données, j'ai preféré installer un wampserver pour mon développement. si quelqu'un à une solution sans trop de risque je suis preneur. Nota: J'ai fait une demande de support a synology, ils ont changé les droits sur des fichiers, mais n'ont pas donné de solutions, je dirais même qu'ils font le mort. donc je pense que le problème est aussi tordu que je me l'imagine. Salutations.
Diaoul Posté(e) le 20 mai 2009 Posté(e) le 20 mai 2009 Pour revenir à ton problème initial stolon, tu peux peut être simplement mettre l'utilisateur "nobody" dans le groupe "users". Tu peux l'ajouter en faisant : DiskStation> vi /etc/group C'est moins dangereux niveau sécurité car le groupe "users" est sensé avoir moins de droits que "root" Ciao
stolon Posté(e) le 21 mai 2009 Auteur Posté(e) le 21 mai 2009 Pour revenir à ton problème initial stolon, tu peux peut être simplement mettre l'utilisateur "nobody" dans le groupe "users". Tu peux l'ajouter en faisant : DiskStation> vi /etc/group C'est moins dangereux niveau sécurité car le groupe "users" est sensé avoir moins de droits que "root" Ciao Hello, j'ai essayé ta proposition, mais cela ne fonctionne pas. synology me sucre mon utilisateur nobody au redémarrage. et puis il y a un truc bizarre mais nobody et présent deux fois dans le group admins, mais pas dans le group nobody... Ceci dit, merci quand même je sais ou trouver le fichier group, c'est déjà ça..
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.