Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/05/2016, à 11: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 wink). 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 wink )

#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

fstab a écrit :

# <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, à 17:50)

Hors ligne

#2 Le 21/05/2016, à 21: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 wink


Aidez-moi à faire connaître mon projet : RaidGHost, un hébergeur (presque :P) gratuit et sans publicité !

Hors ligne

#3 Le 22/05/2016, à 11:43

kholo

Re : [TUTO] Gérer un réseau familial avec des droits (ACL) sur du Ext4

zététix a écrit :

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 wink

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, à 09: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, à 09:16

kholo

Re : [TUTO] Gérer un réseau familial avec des droits (ACL) sur du Ext4

bonjour à ceux qui suivent wink
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