Pour les fichiers créés à partir du compte testuser dans le répertoire / var / www, j'ai besoin qu'ils aient g + rwx en tant qu'autorisations et www-data en tant que groupe.
Comment puis-je atteindre cet objectif?
Je crée les fichiers via SSH.
Pour les fichiers créés à partir du compte testuser dans le répertoire / var / www, j'ai besoin qu'ils aient g + rwx en tant qu'autorisations et www-data en tant que groupe.
Comment puis-je atteindre cet objectif?
Je crée les fichiers via SSH.
Réponses:
Pour définir le groupe, donnez /var/www
le bit setgid :
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 {} +
Cela fera que 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 pouvez obtenir "Opération non prise en charge", auquel cas elle doit être activée manuellement:
Pour un système de fichiers actuellement monté: mount -o remount,acl /
En permanence - l' une des méthodes ci-dessous:
au niveau fstab: modifier /etc/fstab
pour avoir acl
dans le champ d'options
au niveau du système de fichiers: tune2fs -o acl /dev/diskname
chmod
obtiendrait également tous les fichiers.
install
, parviennent d'une manière ou d'une autre à contourner les ACL par défaut des répertoires.
/var/www/html/projects
dossier et lorsque www-data crée un fichier, il a des rw-rw-r
autorisations mais quand je fais quelque chose dans la console, il crée un fichier avec rw-r--r
. Comment puis-je forcer les nouveaux fichiers créés à toujours avoir des rw-rw-r
autorisations?
umask
. Les autorisations par défaut par répertoire sont modifiables en utilisant setfacl
comme dans le message principal.
Cela pourrait avoir 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
stor
/appe
? Via HTTPPUT
? Via un compte shell? Ces détails sont importants, car ils affectent grandement les réponses possibles et doivent être dans votre question.