Je voudrais donner 755 autorisations à un répertoire, donc j'utilise:
# chmod -R 755 /my/folder/
Cela fonctionne pour tous les fichiers à l'intérieur de mon dossier, mais le problème est que j'utilise des scripts qui créent de nouveaux fichiers dans ce dossier, et par défaut les autorisations sont 600.
Comment pourrais-je imposer 755 autorisations sur ces "futurs" fichiers?
--ÉDITER--
J'utilise un script qui me donne des informations sur le trafic réseau sur mon campus. J'ai un nouveau fichier toutes les 10 minutes, situé dans un dossier appelé voyage, situé dans le dossier du mois comme ceci:
ls -lrt /home/netmet/secure/2017-04/2017-04-27/
total 118548
-rwxr-sr-x 1 root root 85922 avril 27 00:10 zzaccounting.dmp-00-00
-rwxr-sr-x 1 root root 54874 avril 27 00:20 zzaccounting.dmp-00-10
-rwxr-sr-x 1 root root 33534 avril 27 00:30 zzaccounting.dmp-00-20
-rwxr-sr-x 1 root root 48890 avril 27 00:40 zzaccounting.dmp-00-30
-rwxr-sr-x 1 root root 36878 avril 27 00:50 zzaccounting.dmp-00-40
-rwxr-sr-x 1 root root 37034 avril 27 01:00 zzaccounting.dmp-00-50
-rwxr-sr-x 1 root root 38154 avril 27 01:10 zzaccounting.dmp-01-00
-rwxr-sr-x 1 root root 38318 avril 27 01:20 zzaccounting.dmp-01-10
-rwxr-sr-x 1 root root 26978 avril 27 01:30 zzaccounting.dmp-01-20
-rwxr-sr-x 1 root root 31558 avril 27 01:40 zzaccounting.dmp-01-30
-rwxr-sr-x 1 root root 23662 avril 27 01:50 zzaccounting.dmp-01-40
-rwxr-sr-x 1 root root 32298 avril 27 02:00 zzaccounting.dmp-01-50
-rwxr-sr-x 1 root root 30282 avril 27 02:10 zzaccounting.dmp-02-00
-rwxr-sr-x 1 root root 31110 avril 27 02:20 zzaccounting.dmp-02-10
-rwxr-sr-x 1 root root 25718 avril 27 02:30 zzaccounting.dmp-02-20
-rwxr-sr-x 1 root root 26306 avril 27 02:40 zzaccounting.dmp-02-30
-rwxr-sr-x 1 root root 23690 avril 27 02:50 zzaccounting.dmp-02-40
-rwxr-sr-x 1 root root 23002 avril 27 03:00 zzaccounting.dmp-02-50
-rwxr-sr-x 1 root root 21854 avril 27 03:10 zzaccounting.dmp-03-00
Ici, j'ai changé les autorisations à la main, mais lorsque le nouveau fichier apparaît, j'ai ceci:
-rw------- 1 root root 3479106 avril 27 15:50 zzaccounting.dmp-15-40
Le fait est que pour chaque dossier et fichier sous / home / netmet / secure / je veux une autorisation 755 par défaut.
Je l'ai déjà fait:
chmod -R g+s /home/netmet/secure
setfacl -d -m g::rwx /home/netmet/secure
setfacl -d -m o::rx /home/netmet/secure
la source
umask
, mais pas pour remplacer un programme qui crée des fichiers avec mode0600
par conception. Voir ici pour quelques références.umask
pour ajouter un bit d'exécution aux fichiers, cela doit être fait à la main2017-04-27
) et comment les répertoires sont-ils créés en premier lieu? Veuillez mettre à jour la question avec ces détails.Réponses:
Essayez d'exécuter
umask
dans votre dossier. S'il renvoie autre chose que '0022', c'est votre problème. Dans votre cas, il devrait initialement sortir '0177'. Le système d'autorisation lors de la création d'un répertoire est essentiellement calculé:default - umask
0777 est le mode par défaut pour les répertoires et 0666 pour les fichiers ordinaires, mais il existe différents masques, si je comprends bien. Essayez d'exécuterumask a=rx,uu+w
.EDIT: Vous pouvez utiliser umask pour donner un bit d'exécution au répertoire pour pouvoir y entrer, mais pas aux fichiers. Celles-ci doivent être exécutées manuellement en raison de la sécurité. Ajoutez simplement
chmod +x <file>
à votre script. Et, exécuter l'indicateur défini sur le fichier, tout ce qui n'est pas exécutable n'a aucun effet.la source
umask
commande shell ne dépend pas du chemin, elle dépend uniquement de l'utilisateur qui l'exécute, chaque utilisateur a une valeur umask spécifique, définie lors de la connexion et qui peut être modifiée ultérieurement. Cela définit la façon dont les nouvelles autorisations de fichiers sont créées.chmod a=rx,u+w
dans votre réponse.Je suppose que vous exécutez les scripts qui génèrent les fichiers dans un environnement où umask est défini sur 0077. Cela empêche le programme de génération de définir des bits d'autorisation dans les bits d'autorisation "groupe" et "autres".
Notez que le umask fait partie de l'environnement hérité de tout processus et est généralement défini à partir d'un «profil» par défaut lors de la connexion. N'importe quel processus (shell) peut modifier son propre umask (initial) et celui de ses descendants avec la commande 'umask'.
Les bits dans le umask actuel empêcheront la création de fichiers avec ces bits définis dans leurs autorisations (d'où un "masque", masquant les bits d'autorisation résultants)
la source
Remarque : Ce n'est pas idéal et doit être considéré comme une solution de contournement temporaire
Vous pouvez créer un travail cron qui exécute la commande chmod toutes les 5 minutes ou selon vos préférences.
Il y a aussi inotify
la source