Autorisations de fichier par défaut pour l’utilisateur php www-data

J’ai un php installé sur ma machine Ubuntu. La racine Web est /var/www

J’ai défini les permissions pour ce dossier comme suit:

sudo chown -R ftpuser: www-data / var / www

ftpuser est l’utilisateur que j’ai configuré afin de pouvoir ftp vers / var / www à partir d’une autre machine du réseau. www-data est l’utilisateur que php utilise. J’ai vérifié deux fois en utilisant whoami de php.

Chaque fois que je télécharge un nouveau fichier sur la machine via ftp, le groupe n’a pas de permissions sur le fichier. Donc, lorsque j’essaie d’y accéder dans mon navigateur via machine-name/new-file.php me dit que l’autorisation est refusée et que je dois aller chmod le nouveau fichier.

Je me demande s’il existe un moyen de permettre à l’utilisateur / groupe de www-data de disposer par défaut des permissions d’access aux nouveaux fichiers afin de ne pas avoir à garder chmod à chaque nouveau fichier?

Vous pouvez utiliser ACL. Pour configurer ACL pour Ubuntu 10.10, commencez par monter les systèmes de fichiers avec l’option acl dans / etc / fstab.

 sudo vim /etc/fstab 

UUID = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 par défaut, acl 0 1

 sudo mount -o remount,acl / 

Créez ensuite un groupe auquel un utilisateur peut appartenir à cette fin.

 sudo groupadd developers sudo usermod -a -G developers $username 

L’utilisateur doit se déconnecter et se reconnecter pour devenir membre du groupe de développeurs.

Bien sûr, ne le faites pas si vous avez le contenu souhaité dans le répertoire / var / www, mais juste pour illustrer sa configuration:

 sudo rm -rf /var/www sudo mkdir -p /var/www/public sudo chown -R root.developers /var/www/public sudo chmod 0775 /var/www/public sudo chmod g+s /var/www/public sudo setfacl -d -mu::rwx,g::rwx,o::rx /var/www/public 

Remplacez ensuite les références à “/ var / www” par “/ var / www / public” dans un fichier de configuration, puis rechargez.

 sudo vim /etc/apache2/sites-enabled/000-default sudo /etc/init.d/apache2 reload 

Si nous voulions restreindre la suppression et le changement de nom de tous, à l’exception de l’utilisateur qui a créé le fichier:

 sudo chmod +t /var/www/public 

De cette façon, si nous voulons créer des répertoires pour des frameworks qui existent en dehors de la racine du document Apache ou peut-être créer des répertoires accessibles en écriture au serveur, cela rest simple.

Répertoire des journaux en écriture Apache:

 sudo mkdir /var/www/logs sudo chgrp www-data /var/www/logs sudo chmod 0770 /var/www/logs 

Répertoire de bibliothèque lisible par Apache:

 sudo mkdir /var/www/lib sudo chgrp www-data /var/www/lib sudo chmod 0750 /var/www/lib 

Je suis sûr que vous avez déjà réglé ce problème, c’est donc pour quelqu’un avec une demande similaire

lancez la commande “changer de propriétaire” sur votre dossier webroot:

 sudo chown manny -R www 

Cela fera de vous le propriétaire remplacer “manny” par votre nom d’utilisateur, vous permettant d’écrire / lire dans le dossier www

Si votre serveur Web ne parvient même pas à lire les fichiers, il est très probable que les permissions de new-file.php soient d’ new-file.php 600 (lecture et écriture pour le propriétaire). Recherchez un paramètre umask dans votre application FTP et assurez-vous qu’il ressemble à 007.

Si votre application Web doit modifier les fichiers (ou d’autres opérations qui ne peuvent être effectuées que par le propriétaire du fichier), vous avez besoin d’une autre approche. Si vous utilisez Apache, vous devriez envisager d’utiliser le MPM itk . Avec ce module, vous pouvez obliger Apache à exécuter / ouvrir les fichiers en utilisant le même utilisateur que “ftpuser”. Si vous avez besoin de plus d’informations sur ce sujet, ajoutez un commentaire.