2010-05-19 18 views
0

J'essaye de mettre en place la mise à jour automatisée de .htaccess. Cela doit clairement être aussi sûr que possible, mais pour le moment, le meilleur que je puisse faire est 666.Puis-je utiliser fwrite php avec 644 autorisations de fichiers?

Que puis-je faire pour configurer mon serveur ou mon code php afin que la commande fwrite() de mon script fonctionne 644 ou mieux? Par exemple, existe-t-il un moyen de définir mon ou mes scripts à exécuter en tant que propriétaire?

EDIT:
Je réalisé que je fait juste eu un problème d'autorisations, vous devriez être en mesure d'utiliser fwrite aucun problème avec 644 autorisations. Voir ma réponse ci-dessous.

Répondre

0

Ces suggestions ont été formidables, mais je finalement réalisé que la réponse à ma question est OUI - et vous ne devriez pas avoir à faire quoi que ce soit ...aussi longtemps que l'utilisateur propriétaire du fichier/répertoire vous essayez d'écrire est le même utilisateur que le script est en cours d'exécution. Mon erreur a été que j'ai accidentellement eu ma propriété de fichier out of whack donc besoin d'autorisations plus élevées 666 et 777 afin d'écrire dans mes fichiers. Ce qui est logique car Wordpress peut écrire dans .htaccess avec des permissions standard.

Maintenant, j'ai des choses d'installation où un fichier en cours d'exécution comme user1 écrit dans un fichier appartenant à user1:user1, et aucun problème quel qu'il soit. Répertoires définis sur 755, .htaccess fichier défini sur 644.

0

Vous ne pouvez pas modifier le propriétaire du processus. Si vous êtes sur un serveur partagé, voyez s'ils ont suPHP en option.

2

Le processus apache devrait toujours fonctionner comme apache:apache - si vous devez activer les autorisations d'écriture dans exécutable (à savoir DocumentRoot) répertoires, créer un groupe, ajouter des autorisations d'écriture du groupe apache et set (si 664). Il est préférable d'avoir .htaccess mis à jour par un script cron lisant les données de configuration d'une base de données, car donner des permissions d'écriture apache aux répertoires exécutables est désapprouvé si une vulnérabilité dans votre code permet à un utilisateur malveillant d'écrire de nouveaux fichiers dans ces répertoires .

+0

+1 pour cron. Mais s'il est sur un serveur partagé, la mise en place d'Apache pour le groupe mettra à peu près ses fichiers à 99% du risque original. – webbiedave

+0

Je ne suis pas trop familier avec l'utilisation des tâches cron ... serais-je capable d'exécuter le script cron lorsqu'un administrateur clique sur un bouton "Update .htaccess" sur ma page php par exemple? Ou peuvent-ils seulement être programmés pour s'exécuter à intervalles réguliers comme chaque heure, jour, mois, etc.? Je suis sur un hôte dédié btw. – filip

+0

Oui, cron est un "planificateur de tâches basé sur le temps". Vous pouvez configurer le cron pour qu'il s'exécute toutes les minutes (ou deux) et vérifier une entrée dans une table db avec un code d'instruction (plus sûr) ou le code à mettre dans '.htaccess' (moins sûr). exemples cron: http://en.wikipedia.org/wiki/Cron – Andy