Aller au contenu

Ouvrir Les Droits D'un Dossier Pour Php


Messages recommandés

Salut à tous,

Nous avons acheté un NAS dans l'entreprise et je dois le configurer. Je bloque sur un point, voilà l'idée : nous avons un intranet (hébergé sur un serveur Windows) développé en PHP. Je cherche à pouvoir créer/modifier des dossiers présents sur le NAS via certaines fonctions de PHP (mkdir par exemple) utilisées dans l'intranet.

Ca marche pour des dossiers présents sur le serveur Windows, mais pas sur le NAS. Mon script PHP (hébergé sur le serveur Windows) n'a pas le droit de modifier les dossiers du NAS.

Quelle solution puis-je envisager ? Sachant que sur le serveur Windows, il avait suffi de rajouter les droits au compte "SYSTEM" pour que ça fonctionne. Or ce compte ne semble pas avoir d'équivalent dans le DSM...

Merci d'avance pour votre aide !

PS : j'espère avoir posté dans la bonne section...

Modifié par niconaldo
Lien vers le commentaire
Partager sur d’autres sites

Modifie l'utilisateur (nobody par défaut) renseigné dans le fichier de configuration Apache (/usr/syno/apache/conf/httpd.conf-user).

C'est sous Windows que tourne le serveur Apache, ce n'est pas l'Apache du Syno.

***EDIT***

Plutot donc s'assurer (via des acl par exemple) d'avoir le droit d'écriture sur les répertoires cibles sur le NAS pour le compte DSM que le serveur apache utilise pour s'authentifier sur le NAS.

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

Merci pour vos réponses, CoolRaoul a raison, Apache est sur le serveur Windows...

Tu peux m'en dire plus sur les ACL stp ?

En fait je ne vois pas à quel compte attribuer des droits sur le NAS pour que ça fonctionne. Faut-il par exemple que je crée un compte dédié à ça, que je lui ouvre les droits sur les dossiers voulus sur le NAS puis que je dise au serveur Apache de s'authentifier avec ce compte ? Si oui, je ne sais pas comment faire pour la dernière partie...

Merci de m'éclairer si possible. J'ai conscience que ma question est à mi-chemin entre la config du NAS et celle du serveur Apache, c'est un peu compliqué...

Lien vers le commentaire
Partager sur d’autres sites

En fait je ne vois pas à quel compte attribuer des droits sur le NAS pour que ça fonctionne. Faut-il par exemple que je crée un compte dédié à ça, que je lui ouvre les droits sur les dossiers voulus sur le NAS puis que je dise au serveur Apache de s'authentifier avec ce compte ?

(Si tu ne maitrise pas les ACL ca risque d'être un peu galère)

En tous cas faut créer sur le NAS un compte dédié, pour le serveur apache tournant sur le serveur Windows.

S'assurer que c'est bien par ce compte que le serveur apache accède au NAS.

Par contre le modèle de sécurité de tes dossiers je peux pas l'inventer pour toi, je ne connais pas ton architecture: tu dois établir exactement la matrice des droits d'acces (utilisateurs X répertoires X lecture/écriture) des dossiers partagés sur le NAS.

L'objectif étant de s'assurer q'apache a bien le droit d'écriture dans les dossiers ou tu veux qu'il créé des dossiers et que ce qu'il va créer soit bien accessible pas les autre utilisateurs avec les bons droits (lecture ou écriture)

Si oui, je ne sais pas comment faire pour la dernière partie...

Moi non plus: Apache sous Windows je n'ai jamais pratiqué.

Reste à espérer quelqu'un de passage pour expliquer comment établir coté Windows pour le process apache, les "credentials" (user/passsword) de connexion au Syno.

Mais rien ne t'empèche d'aller chercher de l'aide en paralelle sur des forums plus spécialisé sur cette partie, apres tout il s'agit d'un problème plus général.

J'ai toutefois comme l'intuition que la solution serait d'intégrer le Syno au même domaine active directory que ton serveur apache, et de faire tourner le compte apache sous un compte de domaine (est-ce possible, je ne sais pas), ce qui permettrait au Syno de *connaitre* ce compte et donc d'appliquer des entrées d'ACL y faisant référence.

Mais va falloir trouver des plus pointus que moi sur la partie Windows Server

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

Merci beaucoup pour ta réponse détaillée, je vais me pencher un peu plus sur ce problème de compte. Le Syno et le serveur Apache sont déjà dans le même domaine, mais il faut que je trouve comment définir un compte de domaine pour Apache...

Si je trouve la solution j'essaierai de la poster ici pour info.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Peut-être devrais-tu regarder cette page : http://httpd.apache.org/docs/2.2/platform/windows.html

By default, all Apache services are registered to run as the system user (the LocalSystem account). The LocalSystem account has no privileges to your network via any Windows-secured mechanism, including the file system, named pipes, DCOM, or secure RPC. It has, however, wide privileges locally.

Never grant any network privileges to the LocalSystem account! If you need Apache to be able to access network resources, create a separate account for Apache as noted below.

It is recommended that users create a separate account for running Apache service(s). If you have to access network resources via Apache, this is required.

  • Create a normal domain user account, and be sure to memorize its password.
  • Grant the newly-created user a privilege of Log on as a service and Act as part of the operating system. On Windows NT 4.0 these privileges are granted via User Manager for Domains, but on Windows 2000 and XP you probably want to use Group Policy for propagating these settings. You can also manually set these via the Local Security Policy MMC snap-in.
  • Confirm that the created account is a member of the Users group.
  • Grant the account read and execute (RX) rights to all document and script folders (htdocs and cgi-bin for example).
  • Grant the account change (RWXD) rights to the Apache logs directory.
  • Grant the account read and execute (RX) rights to the httpd.exe binary executable.

It is usually a good practice to grant the user the Apache service runs as read and execute (RX) access to the whole Apache2.2 directory, except the logssubdirectory, where the user has to have at least change (RWXD) rights.

If you allow the account to log in as a user and as a service, then you can log on with that account and test that the account has the privileges to execute the scripts, read the web pages, and that you can start Apache in a console window. If this works, and you have followed the steps above, Apache should execute as a service with no problems.

Error code 2186 is a good indication that you need to review the "Log On As" configuration for the service, since Apache cannot access a required network resource. Also, pay close attention to the privileges of the user Apache is configured to run as.

When starting Apache as a service you may encounter an error message from the Windows Service Control Manager. For example, if you try to start Apache by using the Services applet in the Windows Control Panel, you may get the following message:

Could not start the Apache2.2 service on COMPUTER

Error 1067; The process terminated unexpectedly.

You will get this generic error if there is any problem with starting the Apache service. In order to see what is really causing the problem you should follow the instructions for Running Apache for Windows from the Command Prompt.

If you are having problems with the service, it is suggested you follow the instructions below to try starting httpd.exe from a console window, and work out the errors before struggling to start it as a service again.

Lien vers le commentaire
Partager sur d’autres sites

Merci pour le conseil, après plusieurs essais infructueux, je me tourne vers une autre solution : l'utilisation d'un compte FTP. J'ai créé un utilisateur ftp sur le NAS, auquel je donne les droits aux dossiers voulus. J'aurai simplement à modifier mon code source pour utiliser des fonctions FTP (ftp_mkdir au lieu de mkdir par exemple).

Pour info j'avais réussi sur le serveur Windows en lancer le serveur Apache avec un compte utilisateur (du domaine) ayant les droits adéquats, les droits étaient définis sur le NAS, mais quand je faisais un mkdir j'avais toujours : "Permission denied"...

Vive le FTP donc...

Merci en tout cas pour votre aide !

Lien vers le commentaire
Partager sur d’autres sites

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…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

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.