Question Droits d'écriture - localhost - Mac OSX


Je suis nouveau dans le monde Mac et je viens de mettre en place mon serveur Web. J'ai utilisé le guide suivant: http://echo.co/blog/os-x-107-lion-development-native-mamp-mysql-installer

J'ai transféré mes sites et bases de données et tout se passe plutôt bien. Le seul problème que j'ai avec les autorisations d'écriture. Par exemple, il y a un fichier de configuration qui doit être écrit, et j'ai dû cliquer avec le bouton droit de la souris, aller sur Obtenir des informations, puis activer la lecture et l'écriture pour le personnel et tout le monde.

Je ne peux pas passer manuellement et activer ces privilèges d'écriture pour chaque fichier / dossier. Je n'ai pas eu besoin de le faire en utilisant WAMP et j'ai rendu le développement beaucoup plus rapide.

Alors, vous vous demandez 2 solutions possibles: a) ajouter mon compte d'utilisateur à une liste blanche pour l'hôte local afin que les privilèges 644 soient suffisants b) définir les privilèges d'écriture récursivement


17
2017-11-07 11:38


origine


Réponses:


J'ai trouvé que la meilleure solution consistait à modifier les paramètres d'utilisateur et de groupe d'Apache. Les instructions peuvent être trouvées à: http://paulmason.name/item/change-apache-user-group-in-lion-os-x

  1. Ouvrir le terminal et entrer

    sudo nano /private/etc/apache2/httpd.conf
    
  2. Recherchez et modifiez le code http.conf à partir de

    User _www
    Group _www
    

    À

    User your_mac_username
    Group staff
    

    Remarque: avec les versions antérieures telles que Leopard, capitaliser le personnel sur le personnel. Vous pouvez obtenir votre nom d'utilisateur et votre groupe en tapant "id" et en appuyant sur enter in terminal

  3. Redémarrer Apache

    sudo apachectl restart
    

41
2018-03-08 21:44



Je suis l'auteur du billet de blog mentionné. Pour les autorisations sur les fichiers du serveur Web, vous souhaitez accorder un accès en écriture à l'utilisateur _www pour les fichiers. Pour config.inc.php, vous pouvez définir deux méthodes:

Avoir _www propriétaire du fichier et avoir des autorisations en écriture:

$ sudo chown _www config.inc.php
$ chmod u+w config.inc.php

Demandez à votre utilisateur de posséder le fichier, remplacez le groupe par _www et accordez des autorisations d’écriture de groupe:

$ sudo chgrp _www config.inc.php
$ chmod g+w config.inc.php

Ou, si vous vous sentez à l'aise de permettre à tous les utilisateurs d'écrire, ce que je ne recommanderais pas pour des raisons de sécurité, donnez à tous les utilisateurs la possibilité d'écrire:

$ chmod a+w config.inc.php

Si un dossier entier doit être écrit par l'utilisateur _www, il peut posséder le dossier et tous les fichiers:

$ sudo chown -R _www:_www folder/

ou vous pouvez donner au dossier des autorisations d'écriture et d'exécution par tous:

$ chmod a+wx folder/

La raison pour laquelle chmod 774 vous a donné des erreurs interdites parce que l'utilisateur _www est tombé sous la permission '4', qui est 'en lecture seule'. Pour les répertoires, un utilisateur doit être "exécuté" pour pouvoir parcourir le dossier. chmod 775 autoriserait l'utilisateur et le groupe à rwx, et d'autres à r-x. Voici plus d'informations sur les autorisations de fichiers Unix.

En outre, votre utilisateur peut conserver sa pleine propriété et ajouter certaines autorisations pour l'utilisateur _www au lieu de modifier le niveau d'accès pour TOUS les utilisateurs à l'aide des listes de contrôle d'accès.

$ sudo chmod -R +a '_www allow read,write,delete,add_file,add_subdirectory,file_inherit,directory_inherit' folder
$ sudo chmod +a '_www allow read,write' config.inc.php

Si vous voulez suivre le chemin des ACL, je vous suggère de lire davantage pour voir quels niveaux d’accès vous avez vraiment besoin. Voici un bon endroit pour commencer.


22
2017-11-07 13:30



J'exécute Apache sur OSX et cela a résolu le problème pour moi:

sudo chown -R _www:_www <mywebfolder>
sudo chmod -R 775 <mywebfolder>

Mise à jour n ° 1:

Syntaxe: sudo chown <user>:<group> <file-or-folder>. L’utilisateur Apache sur OSX est _www.

Pour conserver la propriété mais accorder des autorisations r-w-x à Apache:

sudo chown -R <your-username>:_www <mywebfolder>
sudo chmod -R 775 <mywebfolder>

Mise à jour n ° 2:

J'aime mieux cette méthode. Configurez Apache pour qu'il fonctionne comme vous.

  1. En type terminal id obtenir uid=123(Myname).

  2. Ouvrez /etc/apache2/httpd.conf et éditez-le pour utiliser votre nom d'utilisateur.

    <IfModule unixd_module>
       User Myname
       Group staff
    </IfModule>
    
  3. Retour au terminal: sudo apachectl restart


9
2017-08-21 19:17



Je recommande les paramètres des droits d'écriture de manière récursive pour votre racine Web.

Vous pouvez le faire via la console / le terminal en utilisant chmod -R 774 /my/web/root. Pour moi, le propriétaire et le groupe sont définis sur: www-data:myUserName, qui peut être défini en utilisant chown. N'oubliez pas de vérifier qui est votre utilisateur Web en premier.

Modifier: Pour une meilleure compréhension, pourquoi vous n'avez pas accès:

Chmod 774, chaque numéro représente des droits spécifiques: utilisateur, groupe, autres. Si l'utilisateur est défini sur www-data et le groupe à www-data (la plupart des utilisateurs d'un système Unix sont dans un groupe nommé par leur nom d'utilisateur). Donc, si vous n'êtes pas dans le groupe www-data vous devez soit le rejoindre, soit changer de propriétaire (chown) ou modifier les autorisations (chmod). Il existe plusieurs didacticiels, pour plus d'informations.


2
2017-11-07 11:44