Je ne suis pas en mesure d'écrire sur un lecteur réseau (hébergé avec samba) à l'aide d'un programme php. Pourquoi?

0

J'ai un service de lecteur réseau hébergé sur Samba (dont je ne peux pas modifier les paramètres) lorsque je le monte sur mon ordinateur Ubuntu à l'aide de mount.cifs, je suis capable de lire, d'écrire son contenu. Pour créer un répertoire ou un fichier à l’aide de sudo uniquement (mon utilisateur actuel dispose des droits sudo).

La commande de montage utilisée est: sudo mount.cifs //address.to.samba /mnt/temp -o"username=user,password=pswd"

Lorsque le lecteur réseau est monté sur / mnt / temp /, dans mon programme php, file_exists(/mnt/temp/)retourne True où as is_writable(/mnt/temp/)renvoie false.

La permission de / mnt / temp est initialement 755. Mais même si je chmod à 766 pour le répertoire, cela ne change pas.

que dois-je faire?

Shaleen Jain
la source
Vous devriez dire comment vous utilisez ce php, et à qui vous pensez qu'il est destiné. Exemple: ce téléphone est-il appelé dans le cadre d’une interface Web?
@jdv Je suis un serveur Apache pour héberger le php et le php est en cours d'exécution parce que si je le sauvegarde ailleurs cela fonctionne très bien et ainsi que toutes les autres choses dans php donne la sortie
Shaleen Jain
-o 'uid=...,gid=...,file_mode=...,dir_mode=...,username=...,password=...'. Voir la page de manuel pour plusmount.cifs de détails.
AlexP
Merci @AlexP Cela fonctionne. seulement si nous définissons le dir_mode = 777. S'il vous plaît écrivez-le comme une réponse, cela aidera les autres aussi.
Shaleen Jain le
@ShaleenJain toujours modifier la question lors de l' ajout de détails demandés. Ni les détails des questions ni les réponses ne doivent être cachés dans les commentaires.

Réponses:

1

Les systèmes de fichiers CIFS obtiennent leur propriétaire et leur groupe à partir des paramètres de la mountcommande:

mount -t cifs -o 'uid=...,gid=...,file_mode=...,dir_mode=...,credentials=...'

Voir la page de manuel pour mount(8) pour plus de détails.

Vous voudrez probablement monter le système de fichiers avec l'uid / gid sous lequel le serveur HTTP Apache s'exécute.

AlexP
la source