#1 Le 18/05/2016, à 10:38
- kholo
[TUTO] Gérer un réseau familial avec des droits (ACL) sur du Ext4
Dans un environnement intégralement sous Linux, monter des dossiers au travers du ssh est un jeu d'enfant.
Si on souhaite avoir un serveur partagé dans la famille, certaines parties doivent être réservées et d'autres plus ouvertes. On peut adapter ce principe à toutes les machines de notre maison.
Les droits donnent le pouvoir ou l'interdiction d'accéder, de modifier, de supprimer des dossiers et fichiers.
Partageons un ensemble de dossiers avec des droits spécifiques répartis dans des groupes.
nous ajouterons 4 utilisateurs : papa, maman, petit_gars, petite_fille que vous pourrez adapter (utilisez des noms sans espaces, ni ponctuations, ni accents)
NB : Tous les utilisateurs sont créés sauf un qui l'est déjà : le sudoer.
Les adaptations sont expliquées à la fin si vous voulez conserver votre utilisateur actuel en administrateur.
Dans ce tuto, si c'est papa qui administre (le sudoer) il aura deux comptes : un normal et l'administrateur (si c'est petit_gars ou petite fille, c'est idem ). Dans tous les cas ne laissez qu'un seul sudoer (administrateur)...
----------------------------------------------------------------------------
C'est parti
#On crée le dossier de partage
pour le point de montage je choisis "/media/maison" (peut être monté avec fstab)
je laisserai le chemin complet de ce dossier par la suite pour bien distinguer les dossiers des groupes et utilisateurs
sudo mkdir /media/maison
# fstab - optionnel
voir plus bas ; POUR ALLER PLUS LOIN
Le dossier partagé sera /media/maison. Si vous laissez ainsi, les fichiers seront placés sur la partition racine (/) mais il peut être monté avec fstab depuis une autre partition (Ext4, Ext3) pour la retrouver à chaque démarrage pour chaque utilisateur.
#On crée les groupes
sudo groupadd maison
sudo groupadd parents
sudo groupadd famille
sudo groupadd enfants
sudo groupadd amis
#On crée les sous dossiers
sudo mkdir /media/maison/parents
sudo mkdir /media/maison/famille
sudo mkdir /media/maison/enfants
sudo mkdir /media/maison/amis
#On donne à chaque dossier un groupe
sudo chgrp -R maison /media/maison
sudo chgrp -R parents /media/maison/parents
sudo chgrp -R famille /media/maison/famille
sudo chgrp -R enfants /media/maison/enfants
sudo chgrp -R amis /media/maison/amis
(le -R est certainement inutile car les dossiers devraient être vides pour le moment )
#On donne les droits complets aux créateurs et aux groupes concernés
sudo chmod -R 770 /media/maison/parents/
sudo chmod -R 770 /media/maison/famille/
sudo chmod -R 770 /media/maison/enfants/
sudo chmod -R 770 /media/maison/amis/
#droits par défaut aux groupes définis lors de la création de fichiers et dossiers
quand on crée un fichier il prend le groupe par défaut.
sudo setfacl -dRm g:parents:rwx /media/maison/parents/
sudo setfacl -dRm g:famille:rwx /media/maison/famille/
sudo setfacl -dRm g:enfants:rwx /media/maison/enfants/
sudo setfacl -dRm g:maison:rwx /media/maison/amis/
#On crée les utilisateurs et on définit les groupes pour chaque personne ;
les dossiers nominatifs sont créés dans /home
les sous dossiers (Documents, Images...) seront automatiquement créés à la première connexion (graphique)
sudo useradd papa --create-home --gid parents --groups maison,famille,enfants,amis
sudo useradd maman --create-home --gid parents --groups maison,famille,enfants,amis
sudo useradd petit_gars --create-home --gid enfants --groups maison
sudo useradd petite_fille --create-home --gid enfants --groups maison
(possible d'ajouter famille aux enfants et un groupe "copains" supplémentaire)
traduction de sudo useradd papa --create-home --gid parents --groups maison,famille,enfants,amis
crée un utilisateur "papa", crée son dossier home, défini "parents" comme groupe primaire de "papa" et ajoute les groupes "maison,famille,enfants,amis"
#protégeons l'intimité de papa et maman :
sudo setfacl -dRm 0:--- /home/papa/
sudo setfacl -dRm 0:--- /home/maman/
et on défini les mots de passe
sudo passwd papa
sudo passwd maman
sudo passwd petit_gars
sudo passwd petite_fille
Fin 1 : chacun chez soi dans chaque dossier partagé et limité
----------------------------------------------------------------------------
POUR ALLER PLUS LOIN :
----------------------------------------------------------------------------
SI vous aviez déjà créer un utilisateur (unique) qui est administrateur (sudoer) et vous ne souhaitez pas le différencier de votre compte utilisateur (papa) certaines lignes sont à adapter :
on va utiliser la variable globale $USER qui est votre utilisateur courant.
on va remplacer cette ligne :
sudo useradd papa --create-home --gid parents --groups maison,famille,enfants,amis
on défini votre groupe primaire en parents pour partager avec maman
sudo usermod -g parents $USER
on ajoute les groupes secondaires ; "maison,famille,enfants,amis"
sudo usermod -a -G maison,famille,enfants,amis $USER
on va remplacer cette ligne :
sudo setfacl -dRm 0:--- /home/papa/
on ferme votre home aux utilisateurs qui n'appartiennent pas à votre groupe primaire
sudo setfacl -dRm 0:--- $HOME/
comme des fichiers avaient déjà été créés, on va changer leurs droits pour qu'ils suivent la même logique générale :
on peut jeter un œil au fur et à mesure :
ls -l $HOME
on doit en être là : drwxrwxr-x+ pour les dossiers et là : -rw-rw-r-- pour les fichiers
on règle leur compte aux autres (interdiction complète sur le dossier personnel)
sudo chmod -R o-rwx $HOME
[facultatif] et on donne le droit en écriture au groupe primaire
sudo chmod -R g+w $HOME
et on met parents en groupe de nos fichiers et dossiers personnels
sudo chgrp -R parents $HOME
----------------------------------------------------------------------------
pour vérifier où vous en êtes
ls -l $HOME
et / ou
getfacl $HOME
on peut vérifier les droits des autres dossiers)
getfacl /media/maison/
getfacl /media/maison/parents/
getfacl /media/maison/famille/
getfacl /media/maison/enfants/
getfacl /media/maison/amis/
----------------------------------------------------------------------------
AJOUTER DES NOUVEAUX UTILISATEURS
"un_pote"
sudo useradd un_pote --create-home --gid maison --groups amis
le mot de passe
sudo passwd un_pote
un_pote ne pourra aller que dans le dossier /media/maison/amis
Tata Berthe : "berthe"
sudo useradd berthe --create-home --gid maison --groups famille,amis,enfants
sudo passwd berthe
berthe ne pourra aller que dans les dossiers /media/maison/famille, /media/maison/amis et /media/maison/enfants
----------------------------------------------------------------------------
#FSTAB : optionnel
ce tuto part du principe que l'on va tout mettre sur la même partition
mais on peut séparer les données du système.
Pour obtenir les infos nécessaires dans la partie suivante :
sudo blkid
nous renvoie les partitions de notre système
# /dev/sdxx: LABEL="yyyyyyyy" UUID="xxxxxxxxxxxxxxxxxxxxxxxxxx" TYPE="ext4" PARTUUID="zzzzzzz"
#montage de la partition automatiquement dans le fstab
reporter les infos obtenues avec blkid
sudo nano /etc/fstab
ajoutez la ligne qui commence par UUID et adaptez le xxxxxxxxxxxxxxxxxxxxxxxxxx par celui renvoyé par blkid
# <file system> <mount point> <type> <options> <dump> <pass>
...
UUID=xxxxxxxxxxxxxxxxxxxxxxxxxx /media/maison ext4 rw,relatime 0 2
#on remonte fstab
sudo mount -a
Dernière modification par kholo (Le 30/06/2016, à 16:50)
Hors ligne
#2 Le 21/05/2016, à 20:07
- zététix
Re : [TUTO] Gérer un réseau familial avec des droits (ACL) sur du Ext4
Merci beaucoup pour ce tuto ! J'avais déjà utilisées les ACL pour ce genre de situation. C'est vraiment pratique au moins de savoir que ça existe et je garde ce tuto sous la main donc
Aidez-moi à faire connaître mon projet : RaidGHost, un hébergeur (presque :P) gratuit et sans publicité !
Hors ligne
#3 Le 22/05/2016, à 10:43
- kholo
Re : [TUTO] Gérer un réseau familial avec des droits (ACL) sur du Ext4
Merci beaucoup pour ce tuto ! J'avais déjà utilisées les ACL pour ce genre de situation. C'est vraiment pratique au moins de savoir que ça existe et je garde ce tuto sous la main donc
merci,
si tu trouves une coquille ou si tu as des améliorations voire des idées tout est le bien venu !!!
Hors ligne
#4 Le 29/06/2016, à 08:22
- nalvak
Re : [TUTO] Gérer un réseau familial avec des droits (ACL) sur du Ext4
Je trouve ce tuto excellent !
Merci Kholo !
Au festin du savoir plus l'on partage, plus les parts sont copieuses.
Scii ke oni kredas pli sajas ol kredi ke oni scias. Eraro homas sed persisti diablas.
Hors ligne
#5 Le 30/06/2016, à 08:16
- kholo
Re : [TUTO] Gérer un réseau familial avec des droits (ACL) sur du Ext4
bonjour à ceux qui suivent
quelques améliorations faites aujourd'hui
pour fstab dans le déroulement et les options à la fin
et plus d'explications également dans
le remplacement de papa par l'utilisateur courant qui souhaite rester administrateur
Hors ligne