[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