À supposer donc l'objet suivant -->
Bloc de code:
/Users/maintrot/Programmation
à savoir le sous-dossier
Programmation du dossier de compte
maintrot présent dans le répertoire des
Users.
- Je vais supposer que les 3 accédants à ce dossier sont : user = maintrot > primary group = staff > secondary group = everyone
- Je vais supposer encore que les triplettes de permissions distribuées à ces 3 accédants sont : maintrot = rwx > staff = r-x > everyone = r-x
- Je vais supposer enfin que tu veuilles fermer l'accès à ce dossier Programmation à quiconque n'est pas toi (maintrot)
Alors je sais que l'ensemble des permissions sur le dossier devra être -->
Bloc de code:
drwx------ maintrot staff everyone
- les jeux de lettres (r > w > x) pour exprimer les permissions constituent ce sont appelle des valeurs symboliques. Ces valeurs symboliques ont un équivalent numérique strict qui est le suivant --> la permission r = 4 > w= 2 > x = 1. Ces conventions numériques pour traduire en chiffres les 3 valeurs symboliques constituent les valeurs octales. Elles fonctionnent ainsi : pour chaque accédant à un objet > on fait l'addition arithmétique des 3 valeurs octales qui lui sont attribuées > ce qui donne le chiffre unique de ses permissions. rwx = 4+2+1 => 6 ; r-x = 4+0+1 => 5 ; --- = 0+0+0 => 0 [etc. pour toutes les combinaisons possibles].
On obtient donc en valeurs octales l'équivalent suivant pour les permissions souhaitées sur le dossier
Programmation :
Bloc de code:
700 maintrot staff everyone
# s'exercer mentalement - sans rien écrire - à convertir un ensemble de permissions exprimées en valeurs symboliques --> en valeurs octales ; et vice-versa ; càd. à convertir des lettres en chiffres et vice-versa --> c'est une condition de base pour être à l'aise avec la manipulation des permissions dans le Terminal.
L'utilitaire qui manipule les permissions d'un objet sans changer les accédants est
chmod (
change_mode). Pour ce qui est des permissions basiques (
POSIX) sur un objet (= permissions
rwx) --> la syntaxe de la commande est simple :
Bloc de code:
[sudo] chmod [permissions] [objet]
(
sudo peut être requis pour modifier les permissions sur un objet si le propriétaire (
user) est différent de l'opérateur)
Donc j'obtiens les 2 commandes possibles (équivalentes) -->
Bloc de code:
chmod g=---,o=--- /Users/maintrot/Programmation
chmod 700 /Users/maintrot/Programmation
- à contempler ces 2 variantes --> tu comprends immédiatement la commodité de l'expression en valeurs octales : on ne risque pas de s'emmêler les pinceaux dans l'attribution des valeurs symboliques
La manipulation des valeurs symboliques permet, nonobstant, des variations que ne permet pas l'usage des valeurs octales, car l'expression octale est toujours "holistique" (totale) > alors que l'expression symbolique peut être "spécifique" (ponctuelle).
Déjà tu as pu voir que la commande symbolique faisait abstraction de l'
user (
maintrot) --> ce qui équivaut à laisser ses permissions intouchées. Ensuite > au lieu d'utiliser la syntaxe :
g=--- (qui se lit :
group = aucune permissions) et
o=--- (qui se lit :
other <l'équivalent symbolique de
everyone> = aucune permission) => j'aurai pu me contenter de la rédaction suivante :
- qui se lit : group = soustraction (-) de rx & other = soustraction (-) de rx => comme la permissions w faisait déjà défaut à ces 2 groupes --> on obtient bien un --- au final
# ces raffinements de détails en informatique ont quelque chose de fascinant pour l'esprit --> parce qu'ils révèlent une exigence d'exactitude précise quelle que soit l'échelle. C'est ce que Descartes applelait la « distinction » : la qualité de précision exacte dans le détail. Descartes valorisait aussi la « clarté » : la lumière globale dans la conception. Sachant qu'un paradoxxe semble affecter le fonctionnement de l'esprit humain : un souci absolu de « distinction » va de pair avec une « obscurité » conceptuelle --> au sens où l'esprit ne conçoit plus l'ensemble en idée en s'emprisonnant dans du détail technique infime. Alors qu'il peut y avoir une puissante « clarté » dans une idée d'ensemble > exigeant de ce fait même une certaine « confusion » dans le détail (la précision). Trop d'attention aux détails et à leur précision > empêche toujours l'invention « claire » dans la pensée. Il faut savoir mettre en parenthèse le détail (càd. convertir de force la précision exacte à une confusion des détails) pour que la pensée soit libérée et puisse évoluer dans la clarté. L'idéal cartésien des idées « claires & distinctes » (càd. aussi lumineuses dans l'ensemble que précises dans le détail) est une impossibilité. Ou à tout le moins une vision arrêtée --> car la précision du détail arrête toujours la pensée et l'empêche de jouer librement dans la lumière.
Tu auras compris d'après mon commentaire ci-dessus que --> toutes les fois où l'emploi des valeurs octales est possible > personnellement parlant j'y ai recours dans une commande > car ainsi je me débarrasse de l'attention forcenée au détail qui est de rigueur avec l'emploi des valeurs symboliques.
Il faut noter qu'une option récursive
-R (étendre l'action de la commande à toute la profondeur de l'objet s'il s'agit d'un répertoire) est possible avec
chmod --> auquel cas la modification des permissions opère de haut en bas : du dossier parent à tout son contenu enfant (sous-dossiers > fichiers).
- NB. Il faut toujours faire attention avec l'option récursive --> parce que le cascadement des modifications à tous les éléments d'un ensemble hiérarchique (un dossier contenant des sous-dossiers contenant des fichiers) peut avoir quelque chose d'irréversible. Car il y a homogénéisation des permissions à toute la distribution hiérarchique > alors qu'il y avait peut-être des variantes permissives à tel ou tel nœud de cette distribution (c'est vrai en ce qui concerne l'arborescence de l'OS).