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?
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.
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).