Pour définir le groupe, donnez /var/www
le setgid peu :
chgrp www-data /var/www
chmod g+s /var/www
Pour ajuster également les sous-répertoires :find /var/www -type d -exec chmod g+s {} +
Ainsi, tous les fichiers nouvellement créés hériteront du groupe du répertoire parent, au lieu de celui de l'utilisateur.
Pour définir les autorisations de groupe par défaut, vous devrez utiliser des ACL . Définissez une ACL "par défaut" :
setfacl -m "default:group::rwx" /var/www
Pour ajuster également les sous-répertoires :find /var/www -type d -exec setfacl -m d:g::rwx {} +
Remarque :Le système de fichiers doit avoir la prise en charge ACL activée. Parfois, il est activé par défaut; sur ext3 ou ext4 vous pourriez obtenir "Opération non prise en charge", auquel cas il doit être activé manuellement :
-
Pour un système de fichiers actuellement monté :
mount -o remount,acl /
-
En permanence – un des méthodes ci-dessous :
-
au niveau fstab :éditez
/etc/fstab
avoiracl
dans le champ des options -
au niveau du système de fichiers :
tune2fs -o acl /dev/diskname
-
Cela a peut-être bloqué quelques personnes avec la réponse "grawity" sur setgid, si le groupe du dossier est différent du vôtre, vous devrez peut-être exécuter chmod en tant que root, mais vous n'obtiendrez aucune erreur indiquant que vous devez le faire.
$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar 9 10:44 dir
$ chmod g+s dir #no errors
$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar 9 10:44 dir #but nothing changed
$ touch dir/nosudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar 9 10:51 nosudo #and the group is still wrong
$ sudo chmod g+s dir
$ ls -ld dir
drwxrwsr-x 2 luke testgroup 4096 Mar 9 10:44 dir #the setgid bit is now on
$ touch dir/withsudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar 9 10:51 nosudo
-rw-rw-r-- 1 luke testgroup 0 Mar 9 10:51 withsudo #and group is set