Je travaille avec deux utilisateurs: moi et www-data. Chaque utilisateur a son propre groupe par défaut. Je veux pouvoir accorder facilement des autorisations de lecture, d'écriture et/ou d'exécution aux deux utilisateurs, sans donner les autorisations au public.
D'après ce que je comprends du système d'autorisations de fichiers Linux, si j'ai le fichier suivant:
test.php me:me 770
et le groupe me contient les utilisateurs moi et www-data; les deux utilisateurs disposeraient alors des autorisations complètes pour le fichier test.php. Cela ne fonctionne pas, cependant. J'ai ajouté l'utilisateur www-data au groupe moi-même et défini les autorisations à 770, mais Apache indique que les autorisations sont refusées. Si je change le groupe de fichiers en www-data pour qu'il ressemble à
test.php me:www-data 770
le fichier se charge bien. Le problème est que je télécharge les fichiers sur FTP sous l'utilisateur moi. Il est facile de changer de groupe, mais cela devient incroyablement fastidieux si je dois SSH sur le serveur chaque fois que je télécharge un nouveau fichier pour changer de groupe. D'après ce que je comprends, les groupes existent uniquement pour de telles circonstances, mais je ne comprends pas pourquoi cela ne fonctionne pas.
Modifiez le groupe de tous les fichiers/répertoires en www-data puis activez setgid:
Sudo chmod -R g+s /path/to/www/directory/
Tous les fichiers et répertoires seront créés avec le groupe www-data à partir de maintenant.