OVH Cloud OVH Cloud

chmod : tout petit doute

2 réponses
Avatar
Vincent Ramos
Bonjour,

Je lis surdansà LEA que les attributs de permissions passés à la
commande chmod en octal doivent être précédés du préfixe 0 pour être
correctement interprétés, sinon ils le seraient en base 10 (cf.
<http://lea-linux.org/admin/admin_env/permissions.html>).

Ainsi, pour donner les droits de lecture/écriture/exécution à
l'utilisateur, lecture au groupe et rien au reste du monde, ce
serait : chmod 0720 monfichier.

Vérification : ls -la monfichier = -rwx-w----. Or, si je teste avec
chmod 720 monfichier, j'obtiens exactement le même résultat.

Je m'interroge donc et la page de man me signale que « Any omitted
digits are assumed to be leading zeros ». La page
<http://www.zzee.com/solutions/chmod-help.shtml#zzee_link_2_1077830225>,
quant à elle, confirme en indiquant que le préfixe octal (« leading
zero ») n'est pas obligatoire.

Ma question, qui n'est pas d'ordre pratique (puisque je sais
d'expérience que le préfixe octal n'a aucune espèce d'importance pour
chmod) mais théorique, est donc la suivante : la page de LEA a-t-elle
été écrite à une époque où chmod pouvait recevoir des commandes en
décimal (ce dont la page de man ne se fait pas l'écho) ? Ou bien
est-ce simplement une erreur du rédacteur ?

Merci.

2 réponses

Avatar
Sébastien Kirche
Le 17 avr 2005, Vincent Ramos vraute :


Bonjour,

Je lis surdansà LEA que les attributs de permissions passés à la
commande chmod en octal doivent être précédés du préfixe 0 pour être
correctement interprétés, sinon ils le seraient en base 10 (cf.
<http://lea-linux.org/admin/admin_env/permissions.html>).


Je ne vois rien de tout ça dans mon man(1) où il est dit que les droits
sont donnés par une combinaison de lettres ou de 4 chiffres octaux.

Ainsi, pour donner les droits de lecture/écriture/exécution à
l'utilisateur, lecture au groupe et rien au reste du monde, ce
serait : chmod 0720 monfichier.

Vérification : ls -la monfichier = -rwx-w----. Or, si je teste avec
chmod 720 monfichier, j'obtiens exactement le même résultat.


Oui, mais pas pour la raison expliquée chez Lea.

Je m'interroge donc et la page de man me signale que « Any omitted
digits are assumed to be leading zeros ». La page
<http://www.zzee.com/solutions/chmod-help.shtml#zzee_link_2_1077830225>,
quant à elle, confirme en indiquant que le préfixe octal (« leading
zero ») n'est pas obligatoire.


Pour le mode numérique, man indique ceci :

A numeric mode is from one to four octal digits (0-7), derived by
adding up the bits with values 4, 2, and 1. Any omitted digits are
assumed to be leading zeros. The first digit selects the set user ID
(4) and set group ID (2) and sticky (1) attributes. The second digit
selects permissions for the user who owns the file: read (4), write
(2), and execute (1); the third selects permissions for other users in
the file's group, with the same values; and the fourth for other users
not in the file's group, with the same values.

Si je traduis rapidement :
- le premier chiffre indique SetUID/GroupID/StickyBit
- le second chiffre donne les permissions du propriétaire
- le troisième chiffre donne celle de son groupe
- le dernier donne les permissions du reste du monde

Effectivement les chiffres omis sont considérés comme à 0.

Ma question, qui n'est pas d'ordre pratique (puisque je sais
d'expérience que le préfixe octal n'a aucune espèce d'importance pour
chmod) mais théorique, est donc la suivante : la page de LEA a-t-elle
été écrite à une époque où chmod pouvait recevoir des commandes en
décimal (ce dont la page de man ne se fait pas l'écho) ? Ou bien
est-ce simplement une erreur du rédacteur ?


Àma c'est (la partie concernant le 0 initial) clairement inexact et
mériterait d'en informer le rédacteur.

--
Sébastien Kirche

Avatar
Vincent Ramos
Sébastien Kirche a écrit dans  :

Àma c'est (la partie concernant le 0 initial) clairement
inexact et mériterait d'en informer le rédacteur.


Dont acte. Merci.