Nous prendrons ici le cas simple d'un dossier COMMUN que l'on veut partager entre tous les membres d'une même famille.
Nous rappelons que la commande "ls -l" en console permet d'afficher les informations du dossier courant, que la commande "cd .." permet de remonter au dossier parent de l'arborescence, et que la commande "cd enfant1" permet d'aller dans un dossier enfant nommé ici "enfant1". Ce sont des manipulations de base à connaître, et honnêtement : trois commandes, ce n'est pas la mer à boire...
Pour des questions de sécurité, j'ai pour habitude de fixer manuellement les droits sur les dossiers /home/$user en 700 (rwx------) avec un "chmod 700 /home/*", ce qui assure qu'un utilisateur ne peut accéder aux données d'un autre, et évite les effacements "accidentels" entre utilisateurs. Bien entendu, vous êtes libres de faire comme vous l'entendez chez vous...
Pour commencer, on créé simplement un dossier à part, que nous nommerons ici /COMMUN dans la suite, sous nobody:users en 770 (rwxrwx---) par exemple.
Notez ici que le fait de créer un dossier partagé permettra à n'importe quel usager d'effacer les données d'autrui dans ce dossier.
Pour une famille, on considérera ici que ce n'est pas un problème fondamental.
Et puis c'est tellement amusant de ne jamais faire ses sauvegardes pour venir ensuite pleurer qu'on a tout perdu - on ne va pas s'en priver, quand même !
L'astuce consistera ici à rajouter tous les usagers au groupe users (groupe présent par défaut sous GNU/Linux), puis d'utiliser les listes de contrôle d'accès (ACL) pour que GNU/Linux rajoute automatiquement le groupe users avec les bons droits de lecture/écriture/accès, et ce dès qu'un usager créé un nouveau fichier/dossier dans le /COMMUN.
La commande suivante ne se fait évidemment qu'une seule fois, sous administrateur root.
Code : Tout sélectionner
setfacl -m d:g:users:rwX -R /COMMUN/
Pour lire les ACL d'un dossier, c'est la commande "getfacl nom_dossier" qui fait le travail inverse :
Code : Tout sélectionner
# getfacl /COMMUN
# file: COMMUN/
# owner: nobody
# group: users
user::rwx
group::rwx
other::---
default:user::rwx
default:group::rwx
default:group:users:rwx
default:mask::rwx
default:other::---
Si pour un particulier, l'usage des ACL étendues est inutile, pour une famille, l'exemple ici du dossier COMMUN démontre qu'on peut en avoir besoin.
Pour une entreprise, la question ne se pose pas : connaître les ACL étendues est une obligation aujourd'hui.
Il faut donc espérer que les navigateurs de fichiers de GNU/Linux évolueront rapidement pour prendre graphiquement en charge les ACL étendues.
En attendant, passer par la console n'est jamais une mauvaise chose pour apprendre les commandes de base, avant de se jeter sur des outils graphiques certes plus ergonomiques, mais souvent incomplets en terme de fonctionnalités...