Bonjour,

Le 2014-03-24 11:37, Louis Bourque a écrit :

   J'ai alors démonté le volume avec l'utilitaire de disque et
   rappliqué avec la même commande : aucune permission. Le volume avait
   alors disparu du dossier media, et s'affichait pâli au bandeau
   raccourci de Thunar.


Oui. Ceci vient du fait que les sous dossiers de /media/ sont créés/détruits dynamiquement, à la (dé)connexion des périphériques, vu qu'ils ne servent qu'à établir des liens temporaires avec eux.

   Dans l'abre du système de fichier, j'ai ensuite double-cliqué sur
   media et alors le volume réapparu dans l'arbre, avec son contenu
   (ici lost+found) affiché dans le dialogue principal de Thunar
   (est-ce dire que j'ai à nouveau monté le volume).


Oui.

   Incidemment, la fenêtre Propriété du volume montre que le
   propriétaire a bien changé, passant de «root (root)» à «hirondelle
   (hirondelle)» par cette commande. Pour le reste à cette fenêtre, les
   permissions et leur cible sont inchangées, mais les menus déroulants
   qui les montrent sont actifs cette fois (image en PJ).


C'était bien le but ici : te donner la propriété du dossier pour que tu aies ensuite le droit, en tant que propriétaire, d'en gérer les accès.

Dans un système de gestion de droits classique Unix (et donc aussi sous Linux), seul le propriétaire a le droit de gérer les droits sur un fichier/dossier. (il existe des extensions de sécurité qui permettent de déléguer ce droit, mais souvent ça ne fait qu'ajouter une complexité inutile dans la gestion des droits)

   On dirait donc que votre conseil était judicieux! Et que le problème
   s'agissait de l'attribution de l'«owner» à changer, plutôt que de
   définir les permissions conférérées à l'«owner».


Les deux restaient possibles, le choix dépendant de l'objectif à atteindre. Ici le plus simple était de récupérer la propriété du dossier.

   Juste pour comprendre la grammaire, dois-je comprendre que
   «hirondelle» est le «user» propriétaire et que celui-ci agit en
   root, en invoquant «sudo»? Donc que le «user» en question est en
   fait l'«administrateur» en fait de permissions, s'il est propriétaire?


C'est bien cela.

Pour des raisons de sécurité, un utilisateur ne peut réattribuer la propriété d'un fichier/dossier à un autre. Seul le super-utilisateur "root" a ce droit.

Avant la modification, le dossier appartenait à l'utilisateur "root" et lui seul pouvait y écrire. Donc l'utilisateur "hirondelle" n'avait pas le droit d'y écrire.

Pour que l'utilisateur "hirondelle" puisse y écrire, il fallait soit que "root" lui en donne le droit soit que "root" donne la propriété du dossier à "hirondelle".

La commande "chown" sert à changer le propriétaire (change owner) d'un fichier/dossier.

Vu qu'un simple utilisateur ne peut pas l'utiliser, on préfixe cette commande avec "sudo" pour demander au système de l'exécuter avec les droits du super-utilisateur. Ce qui permet effectivement d'utiliser la commande sans recevoir un message d'erreur de droits insuffisants.

   De façon plus étendue je vous remercie tant! Vous n'avez pas idée à
   quel point cela me rend service. Ce projet d'achat d'un disque,
   initié en décembre, vise à me permettre d'archiver mes données et de
   réinitialiser mon système : celui-ci montre un temps d'accès
   croissant au contenu des répertoires et quelques crash au démarrage.
   Mon disque interne vieillit et ma passion pour la photographie, qui
   me relie en intégrité à l'extérieur, ou à Vie occupe le disque.
   J'étais tellement satisfait en commençant l'archivage!


Si ces fichiers sont si importants, il faudrait penser à en faire plus d'une copie.

   Je crois que vous répondez précisément à ma question initiale
   exprimée au premier mail de cette chaîne. Merci! En effet, vous
   m'indiquez que :

   «avec les systèmes de fichiers évolués comme ext4 (ou ext3/ext2/ext)
   ou encore NTFS, les droits sont stockés dans le système de fichier
   lui-même.

   Donc les droits ne sont pas automatiquement accordés à l'utilisateur
   dont la session est active au moment du branchement du disque, comme
   c'est le cas quand le disque est formaté en (V)FAT.

   Les droits seront ceux trouvés dans le système de fichier et ne
   changeront pas en fonction de la session active».

   De cela je comprends que le «système de fichier» s'étend au
   périphérique et frappe chaque élément contenu dans cet arbre. Ces
   éléments se voient marqués de droits et de leur propriétaire atitré.
   Ce qui m'explique aussi qu'une clé USB (typiquement FAT32) est
   disponible en écriture et lecture à tout utilisateur dès son
   branchement. Est-ce juste?


Globalement oui, mais je précise un peu pour clarifier les notions.

Ce qu'on appelle un « système de fichiers » est une technique d'organisation des fichiers dans un espace donné. Cette technique va préciser comment stocker le contenu des fichiers et les informations qui les concernent (les méta-données : nom, taille, date de création/modification/accès, propriété, droits d'accès, etc). Quant au dossiers, ce sont tout simplement des fichiers eux aussi, mais dont le contenu est particulier : une liste de fichiers. (c'est donc une notion récursive)

La façon dont tu utilises « système de fichier » dans ta phrase ici désigne plutôt l'association automatique d'un propriétaire et de droits par défaut aux systèmes de fichiers qui n'ont pas de telles notions, comme (V)FAT.

Les systèmes de fichiers basés sur (V)FAT ne stockent pas d'informations de propriétaire ou de droit d'accès. En revanche les systèmes Unix (et donc Linux) ont obligatoirement besoin d'associer ces notions aux fichiers avant de pouvoir les utiliser. Autrefois il fallait effectuer cette association de façon manuelle, avec une commande dans un terminal. Mais avec des systèmes modernes comme Ubuntu (et bien sûr Debian), le système va automatiquement associer par défaut tout le contenu du système de fichier (V)FAT à l'utilisateur « actif » (= celui dont la session est active au moment du branchement).

   Dois-je donc comprendre que la seule façon d'employer un disque dur
   sur des ordinateurs publics (sessions sans droits d'administrateur)
   est d'y créer une partition de format FAT?


Pour des questions de facilité, c'est malheureusement le cas, oui.

Si une clé USB devait être utilisable « partout », je recommanderais de la formater en (V)FAT, même si ce système de fichier n'est pas le plus sécurisé (surtout en cas de corruption des données) ni le plus performant.

Par contre pour un disque qui n'est utilisé que chez soi, on peut faire un choix plus efficace.

   Donc que ma prémisse de départ suivante, que vous corrigez, était
   erronnée : «J'ai présumé que je n'ai pas à définir le nom de
   l'utilisateur du disque par la commande «chown». En fait je n'en
   sais rien; je présume qu'un disque externe vide ne contient aucune
   information d'assignation à un propriétaire, et que je peux me
   rapporter «anonymement» aux trois niveaux-propriétaires abstraits :
   u, g, a».


Un disque vraiment vide n'est pas utilisable tel quel par le système. Pour qu'un disque soit utilisable, il faut avant tout le formater, c'est à dire choisir un système de fichiers et le mettre en place sur le disque. C'est ce choix qui détermine la façon de gérer le contenu du disque par la suite.

   Enfin, j'essaie de mieux comprendre ce que Jean-Christophe indique ici:

   «Le hic est que si on change de machine, et que l'autre machine n'a
   pas le même utilisateur hirondelle (en particulier avec le même UID
   dans la base des utilisateurs), les droits pourront différer. Par
   exemple l'hirondelle sur un autre poste ne pourra pas accéder, ou
   bien un autre compte ayant le même UID que l'hirondelle du premier
   poste aura des accès qu'il ne devrait pas avoir».

   Je pensais que le UID étiquetait les composantes matérielles telles
   les disques, et non les comptes (logiciels). Dois-je aussi
   comprendre que les lettres du mot «hirondelle» ne suffisent pas à
   former ou répliquer le nom d'un compte propriétaire, de façon à
   jouir à nouveau des droits inscrits sur le disque depuis une
   nouvelle machine? Ou après la réinitialisation du système sur la
   même machine?


Pour comprendre cette notion il faut aller un peu plus en profondeur dans le fonctionnement d'un système d'exploitation, ou d'un ordinateur en général. Sans aller trop loin les détails, il faut garder à l'esprit que les ordinateurs ne sont efficaces qu'avec les nombres.

Dans le système, le nom "hirondelle" prend beaucoup plus de mémoire (minimum 11 octets) qu'un simplement numéro d'utilisateur (généralement 2 ou 4 octets). Il est aussi beaucoup plus long, pour un ordinateur, de comparer deux noms plutôt que de comparer deux nombres.

Aussi, à son niveau, pour rester le plus efficace possible, le système gère tout avec des nombres. Le système ne sait (presque) rien du nom "hirondelle", il ne connaît que l'utilisateur numéro 1000 (ou autre). À notre niveau, humain, il serait difficile de ne travailler qu'avec des nombres. Donc pour nous faciliter la vie, le système gère des tables de correspondance pour nous afficher des noms plutôt que des nombres quand cela est utile/nécessaire.

Un exemple très classique d'une telle table est le fichier "/etc/passwd".

Ensuite la plupart des commandes du système vont consulter ces tables pour interpréter nos demandes et pour nous afficher le résultat.

Par exemple, quand on fait un "chown hirondelle fichier", la commande "chown" va chercher dans "/etc/passwd" quelle est le numéro correspondant à "hirondelle", puis demander au système d'attribuer ce numéro comme propriétaire du fichier indiqué. C'est la raison pour laquelle on peut également utiliser une commande telle que "chown 1000 fichier" (avec le numéro directement).

Autre exemple, quand on fait un "ls -l fichier", la commande "ls" va chercher les informations concernant le fichier, dont le numéro de l'utilisateur propriétaire, puis va chercher dans "/etc/passwd" le nom correspondant pour pouvoir nous l'afficher. Là aussi, on peut demander à la commande de ne pas faire la conversion et de nous montrer les nombres gérés par le système : "ls -l -n fichier".

Pour en revenir maintenant au « hic »…

Ce qu'on appelle l'UID est justement le numéro d'utilisateur dans le système (User ID, visible dans "/etc/passwd", ou avec la commande "id"). C'est ce numéro qui sera utilisé dans le système de fichier quand on change le propriétaire d'un fichier/dossier.

Sous Ubuntu, le premier numéro d'utilisateur de base (mis à part les utilisateurs spécifiques au système) est 1000. Donc si on installe Ubuntu sur une machine et qu'on crée l'utilisateur "hirondelle" au moment de l'installation, il aura le numéro 1000. Si on installe Ubuntu sur une autre machine et qu'on crée l'utilisateur "moineau", il aura aussi le numéro 1000. Et si on ajouter un utilisateur "hirondelle" sur cette seconde machine, il aura le numéro 1001.

À supposer maintenant qu'on connecte le disque sur la seconde machine, on y verra que tous les fichiers appartiennent à "moineau" et non à "hirondelle". Ceci parce que, au niveau disque c'est l'utilisateur 1000 qui est propriétaire et au niveau système l'utilisateur 1000 est "moineau". Donc, sur cette machine, l'utilisateur "moineau" pourra faire tout ce qu'il veut avec les fichiers, tandis que l'utilisateur "hirondelle" n'aura probablement que très peu de droits dessus.


   Pour contourner ce «hic», l'invocation de la commande chown sur la
   nouvelle machine suffirait-elle?


Oui, absolument.

En revanche, le "chown" ne touche qu'un seul fichier/dossier par défaut. Pour que les droits soient bien redonnés à tous les fichiers/dossiers, il faudra utiliser son option de récursivité.

Par exemple :

 sudo chown -R hirondelle: /media/Louis_Archiv_Ext

*Une mise en garde ici* : attention à bien préciser le bon nom de dossier avec cette commande. L'option de récursivité la rendant dangereuse. En effet, si par malheur on faisait la commande suivante "sudo chown -R hirondelle /" (donc changement sur tout le système) le système deviendrait totalement inutilisable et il n'y aurait pas de retour en arrière simple possible !! (sauf à avoir une sauvegarde complète du système) Aucun fichier ne serait vraiment perdu, mais cela pourrait en donner l'impression, du fait que le système ne fonctionne plus correctement.

J.C.

--
Jean Christophe ANDRÉ  —  Coordonnateur des infrastructures techniques
Agence universitaire de la Francophonie (AUF)  —   http://www.auf.org/
✉ : AUF, Case postale du Musée, C.P. 49714, Montréal, (Québec) H3T 2A5
℡ : +1 514 343 6630 #1568  ✦  ℻ : +1 514 343 2107
⎧Note personnelle: merci d'éviter de m'envoyer des fichiers Microsoft⎫
⎩Office, cf http://www.gnu.org/philosophy/no-word-attachments
-- 
Ubuntu-quebec mailing list
Ubuntu-quebec@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-quebec

Répondre à