Comment modifier les autorisations sur tous les fichiers d'un répertoire, et lorsque de nouveaux fichiers sont ajoutés, à des valeurs par défaut?

J'ai un dossier /home/userName/Public/Media dans lequel je stocke tous les médias sur la machine; Ce dossier est destiné à être accessible par tous les autres utilisateurs de la machine, uniquement pour les empêcher de télécharger / extraire indépendamment les mêmes fichiers multimédias.

Y at-il une façon de modifier les autorisations pour:

 owner: userName /* my own user */ Access: read and write group: users Access: read only /* I'm not entirely sure I trust all my users enough to give them powers of delete */ Others Access: read only 

Idéalement, j'aimerais que d'autres puissent ajouter leurs propres médias, mais pour les autorisations pour tous les médias / fichiers / répertoires ajoutés par moi-même au défaut de ceux énumérés ci-dessus. Les autorisations pour les fichiers que mes utilisateurs ajoutent je souhaiterais passer par défaut à ceux ci-dessus, à l'exception que les utilisateurs conservent leur propriété.

Je suppose que l'inotify et l'umask pourraient être utilisés; Mais – et je ne peux qu'excuser pour cela – je ne sais pas comment les utiliser pour effectuer une solution.

Merci pour toute aide que vous pouvez fournir. Un jour, j'espère pouvoir utiliser Ubuntu sans perplexité … =)

 chown -R userName:groupname folderName chmod -R 744 folderName umask 022 (in .login or .profile) 

Chmod modifie les autorisations sur les fichiers. C'est un peu bizarre si vous n'êtes pas habitué, mais en un mot:

Utilisation (pour octal): chmod ABC (fichier cible / dossier)

"A" est les autorisations pour le propriétaire, "B" est les autorisations pour le groupe propriétaire, et C est une autorisation pour tout le monde.

Les autorisations se décomposent comme suit

1 = Exécuter 2 = Ecrire 4 = Lire

Ajoutez-les pour déterminer le niveau d'autorisation. Par exemple, pour lire et écrire, mais pas exécuter, vous utilisez (2 + 4) = 6. Pour lire, écrire et exécuter, utilisez (1 + 2 + 4) = 7. Pour exécuter uniquement, utilisez 1.

Donc, "chmod -R 744 folderName" signifie:

Définir les autorisations pour le propriétaire à lire + Ecriture + Exécuter (7) Définir les autorisations pour le groupe Posséder à lire (4) Définir les autorisations pour tout le monde à lire (4)

Appliquer ces autorisations à folderName et à partir de là, les appliquer de manière récursive (-R) à tous les fichiers dans le dossier.

C'est assez basique; Il existe d'autres façons d'utiliser chmod, et d'autres propriétés que vous pouvez définir avec elle, etc., mais c'est un bon début.

Maintenant umask:

Umask est essentiellement un moyen de définir les autorisations par défaut pour la création de fichiers et de répertoires. Habituellement, il est défini pour chaque utilisateur dans leur fichier .profile ou .login, mais vous pouvez le configurer à plusieurs reprises simplement en tapant umask 022 ou quoi que ce soit … Il restera jusqu'à ce que vous le modifiez ou déconnectez-vous.

Les autorisations (octal) umask sont l' inverse des autorisations chmod. Je sais que c'est bizarre. Mais si vous souhaitez que tous les fichiers dans le répertoire soient créés avec l'autorisation de fichier 777 (lire + écrire + exécuter pour le propriétaire, le groupe et tout le monde), vous avez configuré l'umask à 000.

Ainsi, pour que tous vos utilisateurs créent des fichiers 644 (lecture / écriture, lecture, lecture), vous définissez l'umask sur 022 (ce qui semble erroné, mais les fichiers ne sont pas exécutables par défaut, de sorte que les fichiers nouvellement créés Être 644 et les répertoires nouvellement créés seront 755).

J'espère que ce n'était pas trop déroutant.