Comment donner une autorisation de lecture / écriture à un dossier et à ses sous-dossiers et fichiers?

10

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?

kamal
la source
Le 777 est une mauvaise idée . Mais l'utilisation d'ACL pourrait très bien convenir. Voulez-vous s'il vous plaît lire cette solution sur ACL pour voir si cela fonctionne bien pour vous?
1
De même, pour chmod tous les répertoires, vous pouvez utiliser 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.
Redy S

Réponses:

1

Les autorisations pour les fichiers nouvellement créés sont définies par umask

Vojtech Trefny
la source
pouvez-vous écrire la commande pour rendre / var / www / accessible en écriture et lui donner une autorisation telle que j'obtiens la même autorisation (777) pour le site que j'ai récemment ajouté.
kamal
1
Donner l'autorisation 777 à votre serveur Web n'est pas bon.
saji89
Pourriez-vous s'il vous plaît ajouter plus de détails.
saji89
@ Vojtech Trefny. Le lien ne fonctionne pas pour le moment, il indique 404 Not Found.
all4naija
12

Vous pouvez utiliser l'option récursive à tout moment. sudo chown -R username /var/www

BZ1
la source
Vous avez besoin de plus de votes positifs!
Sheharyar
10

Comme d'autres l' ont déjà mentionné , accorder 777 autorisations /var/wwwest 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/wwwce groupe

  • changer récursivement la propriété de /var/wwwce groupe

  • activé umaskpour /var/wwwque 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.

Sergey
la source
2

Vous devez éditer en /etc/apache/envvarstant 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.

RobotHumains
la source
0

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.

przemo_li
la source
0

Je pense que vous voulez avoir un accès en écriture /var/wwwpour modifier les fichiers et les répertoires. Je pense que la meilleure solution est d'installer apache2-mpm-itket d'ajouter dans le fichier de configuration de l'hôte virtuel /etc/apache2/sites-available/default:

<IfModule mpm_itk_module>
    AssignUserId your-username your-group
</IfModule>

et exécutez de chown your-username\: /var/www -Rvcette 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 / GID

Dawid
la source