Comment définir les autorisations de fichier avec la commande tactile

16

Il semble que chaque fois que je crée un fichier, touchles autorisations sont définies sur: -rw-r - r-- .

Existe-t-il un moyen de configurer les autorisations avec touchou faut-il le faire ensuite avec une autre commande?

chackerian
la source

Réponses:

27

Vous pouvez modifier votre umaskpour autoriser (pour la plupart des implémentations) plus de privilèges de lecture / écriture, mais non exécutables, car généralement les autorisations demandées le sont 0666.

Si umaskc'est le cas 022, vous verrez touchcréer un 0644fichier.

Fait intéressant, POSIX décrit ce comportement en termes de creat:

  1. Si le fichier n'existe pas:

    La fonction creat () est appelée avec les arguments suivants:

    • L'opérande de fichier est utilisé comme argument de chemin.

    • La valeur du bit à bit compris OU de S_IRUSR, S_IWUSR, S_IRGRP, S_IWGRP, S_IROTH, et S_IWOTHest utilisé comme argument de mode.

et ce n'est qu'en suivant les liens vers creat, puis vers open, en remarquant la mention umasket le back-tracking vers open(et creat) pour vérifier que cela umaskest censé affecter touch.

Pour umaskn'affecter que la touchcommande, utilisez un sous-shell:

(umask 066; touch private-file)
(umask 0; touch world-writable-file)
touch file-as-per-current-umask

(notez que dans tous les cas, si le fichier existait auparavant, touchne changera pas ses permissions, il suffit de mettre à jour ses horodatages).

Thomas Dickey
la source
2

Vous pouvez manipuler le umask. Généralement, il est défini sur 022ce qui signifie que lorsqu'un utilisateur crée un fichier, il obtiendra l'autorisation de 0644, vous pouvez manipuler umaskselon vos besoins.

TarunSinghal
la source