J'ai changé la propriété de mon fichier localhost /var/www/
et de ses sous-dossiers et lui ai accordé l'autorisation 777. Cependant, chaque fois que j'y ajoute un nouveau dossier, le nouveau dossier n'obtient pas automatiquement cette autorisation. Comment puis-je donner une autorisation de dossier 777 pour toujours afin que si j'ajoute un nouveau dossier ou fichier, il obtienne la même autorisation?
permissions
kamal
la source
la source
find . -type d -exec chmod 777 {} +
pour changer tous les répertoires en 777. N'oubliez pas, vous devez être connecté en tant que root pour de meilleurs résultats et assurez-vous que vous êtes dans le dossier.Réponses:
Les autorisations pour les fichiers nouvellement créés sont définies par umask
la source
Vous pouvez utiliser l'option récursive à tout moment.
sudo chown -R username /var/www
la source
Comme d'autres l' ont déjà mentionné , accorder 777 autorisations
/var/www
est une très mauvaise idée, surtout en production.Une meilleure solution serait de n'accorder des autorisations d'écriture qu'aux utilisateurs qui ont besoin de modifier les fichiers. Une des façons d'y parvenir est:
créer un nouveau groupe
ajouter le ou les utilisateurs qui doivent modifier les données dans
/var/www
ce groupechanger récursivement la propriété de
/var/www
ce groupeactivé
umask
pour/var/www
que tous les fichiers nouvellement créés appartiennent au groupe que nous avons créé.Une autre option consisterait à utiliser ACL, encore une fois, pour accorder des autorisations d'écriture uniquement aux utilisateurs qui en ont besoin.
Voici des instructions détaillées sur la défaillance du serveur .
En règle générale, le serveur Web ou d'autres services réseau ou comptes d'utilisateurs système ne doivent pas avoir d'autorisations d'écriture sur les fichiers servis par le serveur Web, car cela ouvre la possibilité d'une exécution de code arbitraire.
la source
Vous devez éditer en
/etc/apache/envvars
tant que root avec l'éditeur de votre choix.Exemple: ALT+F2
gksudo gedit /etc/apache2/envvars
Allez à la fin du fichier et ajoutez une ligne
umask XXX
.Où umask est l'opposé binaire de la valeur d'autorisations souhaitée.
Pour 774 ce serait 003. Pour 777 mauvaise idée ce serait 000.
Sauver.
Redémarrez apache.
Exemple:
sudo apache2ctl restart
Cela n'affectera que les fichiers / dossiers nouvellement créés par l'utilisateur apache.
Remarque supplémentaire, lecture et écriture est 6 dans l'emplacement utilisateur, groupe ou n'importe qui.
la source
En outre, une solution «prête à l'emploi» consiste à configurer votre serveur http pour utiliser un dossier différent. Si vous utilisez Apache, modifiez simplement les fichiers de configuration. De cette façon, vous n'avez pas à modifier les autorisations pour / var / www qui peut être une mauvaise idée (problèmes de sécurité potentiels).
Et umask est la réponse à votre question. Il peut être utilisé pour restreindre les privilèges par défaut pour les dossiers et fichiers nouvellement créés. Et les développeurs de distribution ont tendance à l'utiliser pour restreindre l'accès à certains dossiers système.
la source
Je pense que vous voulez avoir un accès en écriture
/var/www
pour modifier les fichiers et les répertoires. Je pense que la meilleure solution est d'installerapache2-mpm-itk
et d'ajouter dans le fichier de configuration de l'hôte virtuel/etc/apache2/sites-available/default
:et exécutez de
chown your-username\: /var/www -Rv
cette façon apache pour cet hôte virtuel fonctionnera avec votre UID / GID et vous pourrez éditer des fichiers. Même les fichiers créés par PHP auront votre UID / GIDla source