[Ubuntu-QC] établissement des permissions du disque, dur externe aux secteurs 4k : résolu

Jean Christophe André jean-christophe.andre at auf.org
Lun 24 Mar 17:13:56 UTC 2014


         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        ⎭

-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://lists.ubuntu.com/archives/ubuntu-quebec/attachments/20140324/7ae3c57d/attachment-0001.html>


More information about the Ubuntu-quebec mailing list