OVH Cloud OVH Cloud

[Q] Fonctionnement umask ?

18 réponses
Avatar
sanji
Salut

J'essaie d'étendre ma culture générale...
J'en suis aux droits, et mon guide papier évoque "umask". J'ai déjà un
peu de mal à comprendre les détails théoriques, je passe donc aux
essais, mais là, umask me donne 0022 alors que je m'attendais à maximum
3 caractères...
Je lance donc un "man umask", qui me donne la liste de toutes les
commandes intégrées si j'ai bien compris, mais pas particulièrement
umask.

Enfin, je nage un peu là; si vous aviez une piste pour me débloquer...

Merci.

--
Sanji

10 réponses

1 2
Avatar
patpro ~ patrick proniewski
In article <1h7ez94.1wt6fie1yp8incN%,
(Jean-Daniel SEYRES) wrote:

Salut

J'essaie d'étendre ma culture générale...
J'en suis aux droits, et mon guide papier évoque "umask". J'ai déjà un
peu de mal à comprendre les détails théoriques,


umask c'est un pochoir, tu le poses sur un fichier, et tu mets un coup
de peinture, le fichier reçoit donc "l'inverse" de ce que l'umask
indique. Ça c'est pour la théorie.

je passe donc aux
essais, mais là, umask me donne 0022 alors que je m'attendais à maximum
3 caractères...


Les droits de fichiers aussi peuvent être exprimés sur 4 chiffres.

Je lance donc un "man umask", qui me donne la liste de toutes les
commandes intégrées si j'ai bien compris, mais pas particulièrement
umask.


man chmod pour les explications sur la notation à 4 chiffres.


patpro

Avatar
nospam
patpro ~ patrick proniewski wrote:

umask c'est un pochoir, tu le poses sur un fichier, et tu mets un coup
de peinture, le fichier reçoit donc "l'inverse" de ce que l'umask
indique. Ça c'est pour la théorie.


Jolie façon d'expliquer. Je retiens.

--
Jacques

Avatar
Eric Levenez
Le 12/12/05 7:29, dans , « patpro
~ patrick proniewski » a écrit :

In article <1h7ez94.1wt6fie1yp8incN%,
(Jean-Daniel SEYRES) wrote:

je passe donc aux
essais, mais là, umask me donne 0022 alors que je m'attendais à maximum
3 caractères...


Les droits de fichiers aussi peuvent être exprimés sur 4 chiffres.


Ou 5, 6... Et ils sont codés en décimal, en octal, en hexa...

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.


Avatar
Erwan David
Eric Levenez écrivait :

Le 12/12/05 7:29, dans , « patpro
~ patrick proniewski » a écrit :

In article <1h7ez94.1wt6fie1yp8incN%,
(Jean-Daniel SEYRES) wrote:

je passe donc aux
essais, mais là, umask me donne 0022 alors que je m'attendais à maximum
3 caractères...


Les droits de fichiers aussi peuvent être exprimés sur 4 chiffres.


Ou 5, 6... Et ils sont codés en décimal, en octal, en hexa...


Plus simplement les droits sont exprimés sur 12 bits, qu'on a
l'habitude de représenter par 4 chiffres en octal.

--
Si vous embauchez, voici mon CV
http://www.rail.eu.org/cv/cv.pdf



Avatar
Eric Jacoboni
patpro ~ patrick proniewski writes:

umask c'est un pochoir, tu le poses sur un fichier, et tu mets un coup
de peinture, le fichier reçoit donc "l'inverse" de ce que l'umask
indique. Ça c'est pour la théorie.


Oui, parce qu'en pratique, l'umask est un masque sur les répertoires
(ceux des fichiers en sont déduits par suppression du bit x).

% umask
022
% touch bla
% ls -l bla
-rw-r--r-- 1 jaco admin 0 12 déc 17:25 bla

O22 étant le masque 000 010 010, on devrait avoir rwxr-xr-x si ce
masque portait sur les fichiers.

Par contre :

% mkdir truc
% ls -ld truc
drwxr-xr-x 2 jaco admin 68 12 déc 17:26 truc


--
Eric Jacoboni, ne il y a 1437845033 secondes

Avatar
sanji
patpro ~ patrick proniewski wrote:

umask c'est un pochoir, tu le poses sur un fichier, et tu mets un coup
de peinture, le fichier reçoit donc "l'inverse" de ce que l'umask
indique. Ça c'est pour la théorie.


Jusque là ça va, ça confirme ce que j'avais cru comprendre.

man chmod pour les explications sur la notation à 4 chiffres.


Je n'avais pas pensé à regarder là... J'y vais de ce pas.
Merci.

--
Sanji

Avatar
sanji
Erwan David wrote:

Plus simplement les droits sont exprimés sur 12 bits, qu'on a
l'habitude de représenter par 4 chiffres en octal.


OK.

--
Sanji

Avatar
Nicolas.MICHEL
Jean-Daniel SEYRES wrote:


Je lance donc un "man umask", qui me donne la liste de toutes les
commandes intégrées si j'ai bien compris, mais pas particulièrement
umask.


oublies umask.

Parce qu'au dernières nouvelles, ce truc ne marche pas.
Enfin les appli gui peuvent ne pas le respecter, donc ça ne marche pas.

Si tu veux du solide, il faut utiliser les acl. Là tu peux définir pour
de vrais des permissions que même avec beaucoup de bonne volonté
l'utilisateur ne peux pas atérer.

--
S'il n'y a pas de solutions, c'est qu'il n'y a pas de problèmes
iChat/AIM : michelnicolas

Avatar
patpro ~ Patrick Proniewski
In article <1h7i6iq.1g8qqnnld9olcN%,
(Nicolas MICHEL) wrote:

Jean-Daniel SEYRES wrote:


Je lance donc un "man umask", qui me donne la liste de toutes les
commandes intégrées si j'ai bien compris, mais pas particulièrement
umask.


oublies umask.

Parce qu'au dernières nouvelles, ce truc ne marche pas.
Enfin les appli gui peuvent ne pas le respecter, donc ça ne marche pas.


même en le mettant dans .MacOSX/environment.plist ?


patpro


Avatar
Paul Gaborit
À (at) Mon, 12 Dec 2005 17:28:13 +0100,
Eric Jacoboni écrivait (wrote):
patpro ~ patrick proniewski writes:

umask c'est un pochoir, tu le poses sur un fichier, et tu mets un coup
de peinture, le fichier reçoit donc "l'inverse" de ce que l'umask
indique. Ça c'est pour la théorie.


Oui, parce qu'en pratique, l'umask est un masque sur les répertoires
(ceux des fichiers en sont déduits par suppression du bit x).


Ce n'est pas exactement cela... En fait, le programme qui crée un
fichier (ou un répertoire) demande un ensemble de droits. L'umask est
appliqué par dessus et filtre là où il a des 1 (en vue binaire).

% umask
022


Un umask 022 en octal s'écrit 000010010 en binaire.


% touch bla
% ls -l bla
-rw-r--r-- 1 jaco admin 0 12 déc 17:25 bla


La commande touch qui crée un fichier normal demande le droit 0666 en
octal. Ce qui donne 110110110 en binaire. En appliquant l'umask, cela
donne :

110110110 droits demandés (rw-rw-rw-)
000010010 umask (filtre là où il est à 1)
---------
110100100 droits obtenus (rw-r--r--)

Par contre :

% mkdir truc
% ls -ld truc
drwxr-xr-x 2 jaco admin 68 12 déc 17:26 truc


La commande mkdir qui crée un répertoire demande les droits 0777 en
octal. Ce qui donne 111111111 en binaire. En appliquant l'umask, cela
donne :

111111111 droits demandés (rwxrwxrwx)
000010010 umask (filtre là ou il est à 1)
---------
111101101 droits obtenus (rwxr-xr-x)

Ce fonctionnement est très intéressant car si l'application demande
des droits beaucoup plus restreints, l'umask ne risque pas d'en donner
plus. Par exemple, la commande ssh-keygen qui génère les clés de
chiffrement ssh demande généralement les droits 0600 pour le fichier
qui contient la clé privée. Ce qui donne en binaire 110000000. En
appliquant l'umask :

110000000 droits demandés (rw-------)
000010010 umask (filtre là ou il est à 1)
---------
110000000 droits obtenus (rw-------)

En fait les droits obtenus sont les droits demandés par le programme
filtré par l'umask. Et ce indépendament du type de fichier...

PS: j'ai volontairement mis de côté la partie haute des droits (le
suid bit et compagnie) puisque par construction l'umask ne filtre que
les 9 bits les plus faibles.

PS2: la plupart de temps, on préfixe les nombres exprimés en octal par
un zéro puisque c'est une manière classique de dire qu'ils sont en
octal.

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>


1 2