web-dev-qa-db-fra.com

Pourquoi umask 077 n'autorise-t-il pas l'utilisateur à exécuter des fichiers / répertoires?

J'utilise umask 077. "Autres" et "groupe" n'ont aucun droit, mais l'utilisateur ne peut pas exécuter de fichiers/répertoires. Pourquoi umask 077 n'autorise-t-il pas le propriétaire à exécuter des fichiers/répertoires?

10
Just me

Lorsque vous utilisez un umask de 077 uniquement , l'utilisateur dispose des autorisations de lecture, d'écriture et d'exécution. L’utilisateur pourra certainement ouvrir (exécuter) des répertoires (pour en savoir plus sur la raison pour laquelle les répertoires doivent être exécutables dans ma réponse ici ). Cependant, les fichiers doivent toujours être rendus exécutables en saisissant chmod u+x myfile; ils ne sont jamais automatiquement exécutables. Quelques informations plus utiles sur umask sont données dans cette réponse:

La probabilité de vos problèmes est probablement que vous avez peut-être entré la valeur légèrement de manière incorrecte, ce qui a entraîné un umask différent, ou que la valeur n'a pas été définie de manière permanente. Si vous entrez umask 077 dans le terminal, il ne sera valable que pour cette session du terminal; pour le rendre permanent pour votre utilisateur, ajoutez simplement umask 077 à votre ~/.profile. Le paramètre système par défaut pour umask est /etc/login.defs; il a utilisé pour être dans /etc/profile. Voir aussi la page de manuel de pam_umask, qui est un module pam qui gère l’affectation de umask.

Les exemples suivants proviennent d'un paramétrage réussi de umask 077:

1) Pour la création de dossier : mkdir doc coché avec stat doc a donné les permissions appropriées et un dossier 'exécutable':

File: `doc'
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 801h/2049d  Inode: 6425268     Links: 2
Access: (0700/drwx------)  Uid: ( 1000/    mike)   Gid: ( 1000/    mike)
Access: 2012-09-12 11:33:01.236675420 +0100
Modify: 2012-09-12 11:33:01.236675420 +0100
Change: 2012-09-12 11:33:01.236675420 +0100
 Birth: -

2) Pour la création de fichier : touch new coché avec stat new a donné les autorisations appropriées; le fichier n'est rendu exécutable que lorsque vous utilisez chmod +x:

File: `new'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d  Inode: 6303902     Links: 1
Access: (0600/-rw-------)  Uid: ( 1000/    mike)   Gid: ( 1000/    mike)
Access: 2012-09-12 11:34:58.272676270 +0100
Modify: 2012-09-12 11:34:58.272676270 +0100
Change: 2012-09-12 11:34:58.272676270 +0100

Un umask de 077 donnera les permissions montrées, mais si vous avez toujours des problèmes avec les permissions après avoir correctement configuré umask 077 (comme expliqué plus haut), nous pourrons aller plus loin.

6
user76204

La valeur mask sera utilisée pour modifier de manière appropriée les valeurs par défaut fmask pour les autorisations de fichier (autorisation de base 0666) et dmask pour les autorisations de répertoire/dossier (base permission 0777).

Les valeurs effectives fmask et dmask seront calculées en déduisant la valeur mask (calculs octaux).

Donc, un mask 0022 aurait pour résultat fmask d'obtenir une valeur 0644 (c'est-à-dire 0666 - 0022) alors que dmask serait 0755 (soit 0777 - 0022 ).

Le mask 0077 empêche la création de fichiers avec tout accès non seulement au monde (indiqué par le dernier chiffre octal) mais également aux membres de votre groupe (indiqué par l'avant dernier chiffre octal).

Référence:

5
precise