web-dev-qa-db-fra.com

chmod u + s dans / var / www

j'ai un problème pour accorder les droits pour le bon utilisateur ...

je veux exécuter pootle avec Apache, j'ai donc téléchargé Pootle. Ensuite, je l'ai copié dans/var/www, je l'ai installé et j'ai donné les droits d'utilisateur www-data pour tout le dossier. En ce qui concerne le bien ... maintenant, je veux copier les fichiers traduits de et vers le répertoire de traduction (par exemple,/var/www/pootle/po/project).
J'ai donc créé un groupe (www) qui m'a ajouté au groupe et exécuté

Sudo chown -R: www/var/www/pootle

ok, donc maintenant j'ai le droit d'écrire des fichiers dans le répertoire. Cependant, quand Apache crée un fichier, son groupe est www-data ...

Sudo chmod -R g + s/var/www/pootle

ok, maintenant le groupe est toujours "www", comme je le voulais ... voici le problème:
Quand j’écris des fichiers dans/var/www/pootle, ils sont là, cependant, avec mon utilisateur en tant que propriétaire et non, comme je l’attendais, en tant que www-data, bien que j’ai exécuté la commande:

Sudo chmod -R u + s/var/www/pootle

existe-t-il un moyen de dire que l'utilisateur qui a créé le fichier, même si c'est moi, doit être www-data?

merci d'avance :)

2
greenit

Si vous exécutez chown sans deux points précédents, vous en changez le propriétaire. (Avec les deux points précédents, vous modifiez le groupe, comme vous l'avez montré ci-dessus, et vous pouvez également exécuter chown -R new-owner: newgroup.) Donc, si vous exécutez simplement

Sudo chown -R www-data /var/www/pootle

vous allez changer le propriétaire en www-data.

".... quand Apache crée un fichier, son groupe est www-data ..."

Pouvez-vous préciser ce que vous entendez par là? Apache sert des fichiers, il ne les crée pas. PHP les crée - mais ils sont créés dynamiquement et servis directement aux clients Web (navigateurs), ils ne sont pas créés puis sauvegardés par Apache.

Il semble que votre problème concerne la propriété du fichier. Si tel est le cas, une approche plus pratique pourrait être d'ajouter un groupe au groupe www - Apache (généralement) ayant besoin que les fichiers htm (l) soient détenus par www pour les lire. Les fichiers alors créés par Pootle auront le même identifiant de groupe et vous n'aurez pas besoin de lancer chown. Apache aura un accès en lecture aux fichiers de Pootle. Voir http://translate.sourceforge.net/wiki/pootle/Apache qui dit:

 You need to extract Pootle in a directory accessible to the Apache user.

Make sure Apache has read access to all of Pootle's files and write access to the dbs and po subdirectories.

J'espère que cela t'aides.

2
Scooby-2

Ne vaudrait-il pas mieux y aller:

chown -R greenit:www-data /var/www/
chmod -R 770 /var/www/pootle

Je ne recommanderais pas le prochain bit (vous devriez idéalement manuellement chmod ou chown les fichiers que vous créez vous-même), mais vous pourriez vous ajouter au groupe www-data:

usermod -a -G www-data greenit

Cependant, l'idéal serait de trouver dans Pootle le paramètre qui spécifie sous quel utilisateur s'exécuter et de le modifier en www-data.

1
shrikeh