Cette question a déjà une réponse ici:
J'ai un dossier dans lequel les nouveaux sous-dossiers et fichiers seront créés automatiquement, par un script.
Je souhaite conserver les autorisations d'utilisateur et de groupe de manière récursive pour tous les nouveaux dossiers et fichiers placés dans le répertoire parent. Je sais que cela implique de définir un problème persistant, mais je n'arrive pas à trouver une commande qui montre exactement ce dont j'ai besoin.
Voici ce que j'ai fait jusqu'à présent:
sudo mkdir -p /path/to/parent
sudo chmod -R 660 myself:somegroup /path/to/parent
Ensuite, je souhaite que les autorisations 660 soient définies de manière récursive sur tous les dossiers et fichiers placés dans /path/to/parent
.
Cependant, tout ce que j'ai essayé jusqu'à présent a échoué. Quelqu'un peut aider s'il vous plaît?
En réalité, le drapeau octal 660 n’est probablement même pas correct. Les autorisations que je veux sont:
- Les répertoires placés sous
/path/to/parent
sont exécutables par les utilisateurs ayant des autorisations. - les fichiers sont lisibles / inscriptibles par l'utilisateur et les membres de somegroup
- Les fichiers et les dossiers
/path/to/parent
ne sont PAS lisibles par tout le monde
Je cours sur Ubuntu 10.0.4 LTS.
Quelqu'un peut aider s'il vous plaît?
la source
o+w
un bon choix ici? Les changements ne devraient-ils pas être limités àu
etg
? Sinon, quel est l'intérêt d'essayer de maintenir la sécurité sur le répertoire et les sous-répertoires?Les autorisations que vous recherchez sont 0770 et 0660.
rw-
permissions →110
binaire →6
octalLa propriété du groupe peut être héritée par les nouveaux fichiers et dossiers créés dans votre dossier / chemin / vers / parent en définissant le bit setgid de la manière
chmod g+s
suivante:Maintenant, tous les nouveaux fichiers et dossiers créés sous / chemin / vers / parent auront le même groupe attribué tel que défini sur / chemin / vers / parent.
Les autorisations de fichiers POSIX ne sont pas héritées. elles sont données par le processus de création et combinées avec sa valeur umask actuelle.
Cependant, vous pouvez utiliser les listes de contrôle d' accès POSIX pour y parvenir. Définissez la liste de contrôle d' accès par défaut sur un répertoire:
Ceci s’appliquera
setfacl
au répertoire / path / to / parent, en-m
précisant les ACL par-d
défaut , celles qui seront appliquées aux éléments nouvellement créés. (MajusculeX
signifie que seuls les répertoires recevront le+x
bit.)(Si nécessaire, vous pouvez ajouter un
u:someuser:rwX
oug:someuser:rwX
- de préférence un groupe - aux ACL.)Remarque: Sur les systèmes plus anciens utilisant ext3 / ext4, vous aviez l'habitude de monter le système de fichiers avec l'
acl
option, sinon il ignorerait toutes les listes de contrôle d'accès et interdirait d'en définir de nouvelles.Pour le définir de manière permanente, utilisez
tune2fs -o acl <device>
ou modifiez/etc/fstab
.la source
unzip
?Je pense que vous compliquez exagérément la question. Si le répertoire de niveau supérieur n'est pas accessible aux autres, ceux-ci ne pourront pas créer de fichiers dans l'arborescence. L'accès en écriture au groupe n'est pas requis si seul Apache écrit.
Ces étapes doivent faire ce que vous voulez (remplacez le répertoire dans les commandes par le répertoire que vous souhaitez utiliser):
umask 027
au script par défaut d'Apache/etc/default/apache
. Cela empêchera d’autres d’accéder aux fichiers ou au répertoire créés par apache.chown www-data:www-data directory
le répertoire sur lequel vous voulez qu'apache puisse écrire.chmod 750 directory
le répertoire sur lequel vous voulez qu'apache puisse écrire.Autoriser Apache à écrire dans un répertoire ouvre la possibilité d'injecter toutes sortes de malwares dans le contenu que vous diffusez. Surveillez le contenu de cette arborescence de répertoires de manière appropriée.
la source