Gestion des utilisateurs, groupes, permissions



Documents pareils
Jeudis du libre, Samba ou comment donner le rythme aux stations Windows

Créer et partager des fichiers

Classe et groupe : 1P 3 SEN TRI. Ubuntu : serveur Contrôleur de Domaine (PDC) avec SAMBA

Installation d un poste i. Partage et Portage & permissions NTFS

Sécurisation de Windows NT 4.0. et Windows 2000

Monter automatiquement des disques distants ou locaux avec automount/autofs

Unix/Linux I. 1 ere année DUT. Université marne la vallée

But de cette présentation. Contrôleur de domaine avec Samba (rédigé pour Ubuntu Server) Introduction. Samba: principes

Setting Up PC MACLAN File Server

Ajout et Configuration d'un nouveau poste pour BackupPC

BTS SIO option SISR Lycée Godefroy de Bouillon Clermont-Ferrand

Formation. Module WEB 4.1. Support de cours

ASR3. Partie 4 Le système de fichier. Arnaud Clérentin, IUT d Amiens, département Informatique

Personnes ressources Tice. Académie de Rouen

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt

PARAMETRER SAMBA 2.2

Préparation à l installation d Active Directory

RTN / EC2LT Réseaux et Techniques Numériques. Ecole Centrale des Logiciels Libres et de Télécommunications

Il est courant de souhaiter conserver à

I. Présentation du serveur Samba

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Les différentes méthodes pour se connecter

Atelier La notion de session utilisateur sous Linux

Cyberclasse L'interface web pas à pas

INSTALLATION DE WINDOWS 2000 SERVER POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

Comment configurer Kubuntu

Protéger une machine réelle derrière une machine virtuelle avec pfsense

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

Journée Josy/PLUME. Outils logiciels libres utiles à tout ASR SAMBA. Maurice Libes. Centre d'océanologie de Marseille UMS 2196 CNRS

1. Présentation du TP

TP1 - Prise en main de l environnement Unix.

LINUX REMPLAÇANT WINDOWS NT

FreeNAS Shere. Par THOREZ Nicolas

Serveur d application WebDev

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

Manuel fournisseur : procédure pour prendre connaissance d une consultation en ligne et soumettre une offre. Version de février 2014 SNCF

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

Imprimantes et partage réseau sous Samba avec authentification Active Directory

INSTALLATION DE PEGASUS MAIL 3.12 c FR Avec l interface Harp

Lorsque vous êtes sur le portail de l E.N.T., il y a parmi les onglets un qui s intitule «Devoirs Maison Serveurs»

Guide Expert Comptable Production Coala

Chapitre 02. Configuration et Installation

Récupération manuelle des pilotes windows pour une imprimante partagée avec Samba

Réaliser un inventaire Documentation utilisateur

OpenMediaVault installation

Installation d'un serveur sftp avec connexion par login et clé rsa.

Installation et configuration de Vulture Lundi 2 février 2009

Écriture de journal. (Virement de dépense)

MODE OPERATOIRE CIEL GESTION COMMERCIALE VERSION EVOLUTION BTS PME PMI

Faites danser votre serveur avec Samba. Association LOLITA

HYBIRD 120 GE POUR LES NULS

Manuel d utilisation de Gestion 6

But de cette présentation

Manuel d installation De la Cryptolib CPS Dans un environnement client/serveur TSE/CITRIX

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

COURS WINDEV NUMERO 3

Contrôleur de communications réseau. Guide de configuration rapide DN

Guide de démarrage Intellipool Network Monitor

PARAMETRAGE D INTERNET EXPLORER POUR L UTILISATION DE GRIOTTE

NFS Maestro 8.0. Nouvelles fonctionnalités

Prérequis. Résolution des problèmes WMI. Date 03/30/2010 Version 1.0 Référence 001 Auteur Antoine CRUE

Utilisation de KoXo Computers V2.1

Systèmes informatiques

Documentation Honolulu 14 (1)

Microsoft Windows 2000 Administration de Microsoft Windows 2000

Objectifs de la formation : Savoir réaliser la maintenance et l'administration de premier niveau sur un réseau d'établissement SCRIBE.

COMPTABILITE SAGE LIGNE 30

INITIATION A L INFORMATIQUE. MODULE : Initiation à l'environnement Windows XP. Table des matières :

Manuel utilisateur (Manuel_utilisateur_version pdf) Manuel Reprise des données (Manuel_Reprise_donnees_version

Comment se connecter au VPN ECE sous vista

SOMMAIRE ÉTAPES OBLIGATOIRES. Récupérer le connecteur... 3

sommaire ÉTAPES OBLIGATOIRES Récupérer le connecteur... 3

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10

RECOPLUS LOGICIEL DE GESTION DES RECOMMANDES NOTICE D UTILISATION DE RECOPLUS RESEAU. N de série

Gestion des sauvegardes

TP 1 Prise en main de l environnement Unix

Installation et utilisation du client FirstClass 11

Sécurisation du réseau

PROCÉDURE D AIDE AU PARAMÉTRAGE

COMMUNICATION TECHNIQUE N TCV060 Ed. 01. OmniVista 4760 Nb de pages : 18 Date : URGENTE NON URGENTE TEMPORAIRE DEFINITIVE

Contrôle Parental Numericable. Guide d installation et d utilisation

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

Manuel : Mise en place et déploiement de la solution

INSTALLATION ET CONFIGURATION DE OPENLDAP

Installation / Sauvegarde Restauration / Mise à jour

Manuel Utilisateur Version 1.6 Décembre 2001

E-Remises Paramétrage des navigateurs

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole :

Guide d installation de STS pour Linux

Procédure d installation de mexi backup

Tutoriel de configuration Interfaçage SSO

Fonds Unique Interministériel Guide utilisateur EXTRANET 23/10/2014

Mise en place d un proxy Squid avec authentification Active Directory

SERVEUR DE SAUVEGARDE POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

1 / Introduction. 2 / Gestion des comptes cpanel. Guide débuter avec WHM. 2.1Créer un package. 2.2Créer un compte cpanel

Comment déposer les comptes annuels des associations, fondations et fonds de dotation.

Procédure de Migration de G.U.N.T.3 KoXo Administrator

Utilisation de l espace personnel (Serveur DATA)

Mise en oeuvre d un Serveur de CD AXIS StorPoint

Transcription:

Gestion des utilisateurs, groupes, permissions Gestion des utilisateurs, des groupes et des permissions dans un environnement Samba grâce aux ACLs. Cet Article permet de mieux comprendre le fonctionnement des ACL dans un environnement hétérogène : serveur SAMBA avec ACLs et clients Windows, le tout dans un domaine (NT ou LDAP) 1.Samba sous Linux Avant de comprendre comment sont appliqués les droits sur les fichiers il est important de décrire le fonctionnement de Samba sous Linux. (PNG) Samba est matérialisé, sur Linux, par un process qui tourne en tant que root. Il y a plusieurs process smb qui surveillent en permanence les ports SMB/CIFS et qui tournent en tant que root. Linux est le système d exploitation qui contrôle l accès au système de fichiers. Dès qu un accès est autorisé par Samba ( identification et authentification avec les informations contenues dans la base LDAP ), le process est dupliqué et tourne en tant que utilisateur Linux correspondant au compte Samba. Quand Samba accède au système de fichiers, à travers Linux, c est sousle compte Linux de l utilisateur connecté. Linux contrôle ainsi les permissions accordées à l utilisateur et à ses groupes sur les fichiers et les répertoires du partage. Linux n authentifie pas une nouvelle fois l utilisateur ( d ailleurs, il ne le fait jamais ), il fait confiance à Samba pour cela( qui s exécute en tant que root avant de prendre l identité de l utilisateur ). Par contre il identifie l utilisateur (uid, gid ) à partir des informations correspondantes stockées dans la partie POSIX des comptes LDAP. De même Linux contrôle l appartenance aux groupes de l utilisateur. Pour contrôler les droits sur les partages et les répertoires, on distingue 3 niveaux : contrôle par Samba de l accès aux partage. contrôle par Linux des permissions standards au système de fichiers. contrôle par Linux des permissions étendues au système de fichiers(acl) Ces 3 niveaux s appliquent en fonction des capacité du système de fichier sous jacent. Pour un système de fichier ext2 seules les 2 premier niveaux sont applicables, pour les systèmes etx3 ou xfs, les 3 niveaux sont pris en compte sans modification du noyau Linux. ( Il faut néanmoins ajouter l option acl pendant le montage des FS ext3 ) 1.1.Utilisateurs et Groupes Approche de la gestion des utilisateurs et des groupes (PNG) 1.1.1.Comment les utilisateurs sont ils vus? Les utilisateurs Dans Windows, les utilisateurs sont identifiés par un nom d utilisateur et un SID. Le SID est un élément composé du SID du domaine, suivi du RID de l utilisateur, le RID étant un nombre identifiant l utilisateur de manière unique dans le domaine : SID Domaine RID S-1-5-21-1654345-14738625-73726- 1009 Certains RID ont une signification particulière, par exemple le RID 500 désigne

l Administrateur, le RID 501 désigne un compte Invité. Dans la base Ldap, les attributs d identification pour les entrées People sont : uid : utilisateur (samba ) sambasid : SID de l utilisateur (samba ) 1.1.2.Les groupes Les groupes sont également identifiés par un nom de groupe et un SID. Certains RID de groupes ont une signification particulière dans le monde Windows, par exemple, le RID 512 correspond au groupe Administrateurs du domaine, le RID 513 aux Utilisateurs du domaine. Dans la base Ldap, les attributs d identification des entrées Groupes sont : DisplayName : nom du groupe Windows (samba ) sambasid : SID du groupe (samba ) 1.1.3.Correspondances utilisateurs - groupes Chaque utilisateur appartient obligatoirement à un groupe, c est le groupe principal de l utilisateur. Dans la base Ldap, l attribut sambaprimarygroupsid, désigne le groupe principal de l utilisateur : uid : utilisateur (samba ) sambasid : SID de l utilisateur (samba ) sambaprimarygroupsid : SID du groupe Window principal (samba ) De manière générale, un utilisateur aura comme groupe principal le groupe Windows Utilisateurs du domaine, un administrateur le groupe principal Admins du domaine De plus, chaque utilisateur pourra appartenir à un ou plusieurs groupes secondaires, dans ce cas, l utilisateur apparaitra dans les attributs memberuid de chaque Groupe. DisplayName : nom du groupe Windows (samba ) sambasid : SID du groupe (samba ) memberuid : uid utilisateur 1 (samba ) memberuid : uid utilisateur 2 (samba ) 2.Dans le monde Linux 2.1.Les utilisateurs Comme pour Windows, les utilisateurs sont identifiés par un nom ( uid ) et par un numéro unique (uidnumber ). L uidnumber 0 correspondant à l administrateur ( root ). Dans la base Ldap, les attributs d identification pour les entrée People sont : uid : utilisateur (posix /samba ) uidnumber : numéro de l utilisateur (posix ) sambasid : SID de l utilisateur (samba ) sambaprimarygroupsid : SID du groupe Window principal (samba ) On remarquera au passage que l attribut uid ( utilisateur ) est commun avec la classe d objet Samba. 2.2.Les groupes De la même manière, les groupes sont identifiés par un nom ( gid ) et par un numéro unique (gidnumber ). Sous Linux, il n y a pas de groupe ayant des privilèges particuliers. Dans le Ldap,

on retrouvera les attributs suivants dans la branche Groupes : cn : nom du groupe (posix) gidnumber : numéro du groupe (posix) DisplayName : nom du groupe Windows (samba ) sambasid : SID du groupe (samba ) Ici, on remarquera qu il n y a pas d attributs commun avec les groupes Windows. 2.2.1.Correspondances Utilisateurs - Groupes Comme pour Windows, chaque utilisateur appartient à un groupe Linux principal. Dans l entrée Ldap People, ce groupe est indiqué par l attribut gidnumber : uid : utilisateur (posix / samba) uidnumber : numéro de l utilisateur (posix ) gidnumber : numéro du groupe principal Linux. (posix) sambasid : SID de l utilisateur (samba ) sambaprimarygroupsid : SID du groupe Window principal (samba ) Il apparaît qu il n y a pas de correspondance directe entre le groupe Linux et le groupe Windows et que rien n empêche d avoir des groupes principaux Linux et WIndows qui n ont pas de rapport entre eux. C est pourquoi il est indispensable d utiliser un outil de mise à jour de la base Ldap adapté. Les utilisateurs peuvent également appartenir à un ou plusieurs groupes secondaires. Cette information est stockée dans l attribut memberuid des Groupes : cn : nom du groupe Linux(posix) gidnumber : numéro du groupe (posix) DisplayName : nom du groupe Windows (samba ) sambasid : SID du groupe (samba ) memberuid : uid utilisateur 1 (posix /samba ) membreuid : uid utilisateur 2 (posix / samba ) On remarquera ici, que c est le même attribut qui est utilisé pour les membres de groupes Windows et qu il porte sur le même attribut commun : l uid. 3.De Windows à Linux 3.1.Rôle de samba dans l identification et le mapping de groupe Passerelle de Windows vers Linux Comme nous l avons vu, une fois authentifié, samba accède au système de fichier en tant qu utilisateur Linux correspondant à l utilisateur Windows. Son rôle est ici de mapper le SID de l utilisateur vers son uid qui est commun avec Linux. Quand un utilisateur s authentifie, Samba lui renvoi son SID du domaine et c est ce SID qui sera utilisé pour toute la session, Samba s exécutant alors sur l uid correspondant à l utilisateur Linux. Linux retrouvera alors l uidnumber correspondant à l uid en interrogeant la base Ldap par nss_ldap. Windows < > Linux sambasid uid -

- uid uidnumber Cependant, les permissions sont généralement appliquées pour des groupes et non pour des utilisateurs et Samba ne présente en aucune manière les groupes Windows à Linux. Il n existe pas de groupes Samba, mais seulement des groupes Windows et des groupes Linux. 3.2.Mapping de groupes Quand Samba accède au système de fichier en tant qu utilisateur, Linux effectue les requêtes d identification sur la base Ldap par l intermédiaire du module nsswitch_ldap afin de connaître l uidnumber et les groupes d appartenance de l utilisateur. Le module nsswitch retournera les groupes Linux auquels appartient l utilisateur et c est sur ces groupes que seront controlés les permissions. Le module nsswitch_ldap n a aucune conscience de l existence de la classe Samba dans le Ldap. Par exemple, prenons un utilisateur, qui est dans le groupe, SID : xxxxxxxxxx-513. L entrée de ce groupe, dans la branche Groupe se présente comme ceci : - cn : sambausers (posix) - gidnumber : 513 (posix) - DisplayName : Utilisa. du domaine (samba ) - sambasid : xxxxxxxx-513 (samba ) - memberuid : toto (posix /samba ) - membreuid : xxxx Le module nsswitch retournera seulement les informations Posix, c est à dire, pour l utilisateur toto, qu il appartient au groupe sambausers de gidnumber 513. Le gidnumber 513 n a aucun rapport avec le RID 513 du groupe Windows ( c est l assistant de migration qui l a créé comme cela ), ainsi que le nom du groupe sambausers qui ne correspond pas au nom du groupe Windows. En fonctionnement, samba n intervient pas dans le mapping de groupe. C est du pur Ldap. C est à la création des groupes où il faut faire très attention à la correspondance des noms de groupes Linux et Windows. C est pourquoi il est fortement recommandé de créer les groupes à partir d un outil d administration qui permet de lever toute ambiguité (USRMGR par exemple, permet de créer les groupes Linux en même temps que les groupes Windows, et avec le même nom ). Après une migration, ou une création de PDC avec l assistant, seul le groupe Windows Utilisateurs du domaine à cette particularité. Ce n est donc pas la peine de chercher ce groupe sur Linux qui héberge le PDC, il n existe pas, c est le groupe sambausers. Une autre erreur fréquente est, quand on utilise un client Ldap pour modifier la base des utilisateurs, de ne pas mettre le même groupe principal Linux que le groupe principal Windows ( si en plus ils n ont pas le même nom, c est vite la galère ) ou d oublier d ajouter l utilisateur dans le groupe déclaré comme groupe principal. 3.3.Conseils Si vous rencontrez des problèmes bloquant sur l application des permissions commencez par vérifier vos utilisateurs et leurs groupes d appartenance : 1) les utilisateurs doivent être dans le groupe "Utilisa. du domaine" 2) les utilisateurs doivent avoir comme groupe principal "Utilsa. du domaine" 3) les administrateurs doivent être dans le groupe "Admins du domaine" 4) les administrateurs doivent avoir comme groupe principal "Admins du domaine"

5) vérifiez la concordance des groupes principaux Linux et Windows pour chaque utilisateur (gidnumber et sambaprimarygroupsid ) USRMGR est conseillé pour créer les utilisateurs et les groupes car les informations enregistrées dans le Ldap restent cohérentes. On ne peut fixer, avec USRMGR, un groupe principal que si l utilisateur est déjà dans ce groupe. Il existe des problèmes de rafraîchissement de USRMGR parfois déroutant ( mais qui s expliquent très bien ), quand on fixe un groupe principal, il faut cliquer sur OK 2 fois ( la première fois on a un Acces refusé ) (PNG) 4.Les permissions Linux 4.1.Les droits sur les fichiers et répertoires sous Linux Si vous avez bien lu les pages précédentes, vous savez que : - un utilisateur Windows correspond à un utilisateur Linux. - un groupe Windows ne correspond pas forcement à un groupe Linux, mais qu il faut faire en sorte que cela soit le cas. - les groupes privilégiés de Windows, ou plus précisément les groupes Linux qui correspondent, n ont pas de droits particuliers sur le système de fichiers. Pour compléter l exemple de la page précédente, le groupe "Admins du domaine" Windows qui a un RID 512, correspondra au groupe Linux du même nom mais avec un gidnumber totalement commun ( peut être 1590, si l assistant de migration a été utilisé ). Le groupe "Admins du domaine" n a aucun droits particulier sur Linux, par contre, un utilisateur appartenant à ce groupe, aura tous les privilèges sur une station Windows du domaine ( car le RID 512 sera reconnu par la station qui inclura l utilisateur dans le groupe local des Administrateurs ). Il existe cependant un paramètre de Samba ( smb.conf ) qui permet d inclure tous les membres d un groupe comme Administrateur : admin users = "@Admins du domaine" Dans ce cas, les membres du groupe Admins du domaine seront mappé en tant que root sur Linux. Ce qui revient un peu au même que le comportement que celui d une station Windows, sauf que toutes les opérations seront faites en tant que root, et non en tant qu utilisateur. Par exemple, si vous créez un fichier, celui ci aura comme proriétaire root, et non votre login d utilisateur. 4.2.Les propriétaires et les permissions 4.2.1.Les propriétaires Une permission est un droit accordé à une entité. Ce droit peut être de lire (r), d écrire (w) ou d éxécuter(x) pour un fichier, parcourir pour un répertoire. Une entité est soit le propriétaire du fichier/repertoire ( owner ), le groupe propriétaire du fichier/repertoire (group ) ou tous les autres (other ). Sous Linux, quand on donne une permission, on ne la donne pas à un utilisateur ou à un groupe déterminé, mais on la donne au propriétaire et/ou au groupe propriétaire, et/ou aux autres. Quand plus tard, nous parlerons de la propagation des droits, il s agira de la propagation des permissions, pas des entités. Pour modifier le propriétaire, ou le groupe propriétaire d un fichier/répertoire, il faut être soit même propriétaire du fichier, ou root. La commande a utiliser est :

chown [-R] [ :] Par exemple, pour modifier le propriétaire par root : chown root Pour modifier le propriétaire et le groupe : chown root :"Admins du domaine" Pour modifier en récursif chown -R root :"Admins du domaine" 4.2.2.Les permissions Pour attribuer des permissions aux entités propriétaires, il faut utiliser la commande chmod. Il existe plusieurs syntaxes de la commande chmod. La plus parlante étant celle ci : chmod [-R] <+ - =>[permissions] [,]... Pour donner les droits de lecture (read), d écriture (write ), de parcours ( execute ), pour un répertoire : chmod u=rwx,g=rx,o= Dans ce cas, le propriétaire pourra lire, écrire et parcourir, le groupe propriétaire pourra lire et parcourir, les autres ne pouront rien faire. Souvent, on veut également donner les mêmes permissions aux sous répertoires, on utilisera donc la commande en récursif avec l option -R Pour les fichiers, le x, signifie éxécution. Cela n a de sens que si le fichier est accédé à partir de Linux. Sous Windows, le bit x n a pas de signification d éxécution, par contre il peut être utilisé par Samba pour mapper des informations propres à Windows ( bit d archivage entre autre ) 4.3.Initialisation et propagation des permissions Linux Le positionnement des permissions à la création d un fichier et leur propagation Création d un nouveau fichier ou répertoire Sous Linux, quand un nouveau fichier, ou répertoire est créé, celui ci hérite comme propriétaire et groupe propriétaire, de l identité et du groupe principal de l utilisateur qui l a créé. Par exemple, si toto, dont le groupe principal est sambausers, créé un fichier les entités de ce fichier seront : propriétaire : toto groupe propriétaire : sambausers Les permissions sont fixées par rapport à un masque, qui est défini pour chaque utilisateur : la variable UMASK. Cette valeur est définie dans les variables d environnement Linux de l utilisateur, en général elle est de 022. Pour connaitre les permissions attribuées au nouveau répertoire, il suffit d inverser (en binaire ), la valeur du umask : umask 022 -> pour un répertoire -> 755 = rwx r-x r-x

Si il s agit d un fichier, le bit x ( éxécution ) n est pas positionné umask 022 -> pour un fichier -> 644 = rw- r r Dans ces conditions, si toto créé un nouveau répertoire, celui ci aurra comme permissions : drwxr-xr-x toto sambausers repertoire_de_toto Ce qu il faut comprendre, c est qu à priori, les propriétaires et les permissions des nouveaux fichiers et répertoires ne dépendent pas du répertoire dans lequel il sont créés mais de l utilisateur qui les créé. Quand un utilisateur modifie un fichier dont il n est pas propriétaire, mais dont un des groupes auquel appartient l utilisateur à le droit d écriture, le propriétaire n est pas modifié. Mais il faut tenir compte de l application qui est utilisée pour modifier ce fichier. Par exemple, Word 2000, créé une nouvelle copie et efface l ancienne, ce qui à l effet d une création, donc de la modification du propriétaire. 4.4.Propagation du groupe propriétaire Dans les conditions décrites précédement, on s apperçoit qu il est difficile de maintenir une cohérence dans les permissions sur les fichiers et les répertoires. Supposons que nous déclarions un répertoire dont les permissions seraient : drwxrwx--- root groupesecretaires repertoiresecretaires Un utilisateur, membre de groupesecretaires pourrait créer de nouveaux fichiers dans ce répertoire. Cependant, les permissions sur le nouveau fichier seraient positionnées comme ceci : - rw-r r-- toto sambausers fictoto Pourquoi? parceque toto est bien membre du groupesecretaires, mais son groupe principal est sambausers. De plus, son UMASK est à 022, donc les permissions sont misent à rw-r r-- Il existe un moyen de propager le groupe propriétaire d un répertoire à tout nouveau fichiers, le SGID bit. Son positionnement se fait par la commande chmod g+s repertoiresecretaires ll drwxrws--- root groupesecretaires repertoiresecretaires Si un membre autorisé créé un nouveau fichier, nous aurons groupesecretaires comme groupe propriétaire, quelque soit le groupe principal de l utilisateur : - rw-r r-- toto groupesecretaires fictoto Si il s agit d un nouveau répertoire drwxr-sr toto groupesecretaires reptoto Vous remarquerez que seul le groupe propriétaire est propagé, pas les permissions qui sont toujours défine par le UMASK de l utilisateur. On peut également positionner le SGID bit à la création des permissions : chmod g=rwxs Attention, le s masque, à l affichage le x de droit de parcours. Si le s est minuscule, il inclus le x. Si le S est majuscule, il exclu le x. chmod g=rwxs ----> rws = rwx + s

chmod g=rws ----> rws = rw- + s 4.5.Propagation des permissions par Samba Les capacités de Linux, en terme de propagation se limitent à cela. Ce qui n est toujours pas satisfaisant, les membres du groupesecretataires ne peuvent pas écrire dans les nouveaux répertoires. Cependant, quand le fichier, ou le répertoire, sont créés à partir de Samba, un paramètre dans le fichier smb.conf permet la propagation des permissions du répertoire parent : inherit permissions = yes Dans ce cas, et si seulement le fichier est créé via Samba, les permissions Linux du répertoire parent seront propagées aux nouveaux fichiers et répertoires, le groupe propriétaire sera propagé par Linux avec le SIGID bit, le propriétaire sera l utilisateur qui créé le fichier / répertoire : - rw-rw--- toto groupesecretaires fictoto drwxrws--- toto groupesecretaires reptoto Nous retrouvons les même permissions ( au propriétaire près et au x près pour les fichiers ) que celles du répertoire parent. Dans le cas où la directive inherit owner = yes, le propriétaire sera également hérité du répertoire parent. On perdra donc l information de propriété du fichier, mais cela peut être un choix. 5.Les permissions étendues ( ACL ) Définition et fonctionnement des ACL étendues Comme nous l avons vu précedement - Linux limite l attribution des permissions à 3 entités : le propriétaire, le groupe propriétaire et les autres. - Les permissions appliquées à ces entités dépendent de l utilisateur qui créé les fichiers, par son UMASK. - Le groupe propriétaire peut être propagé aux nouveaux fichiers et répertoires par le SGID bit - Enfin, Samba permet de propager les permissions ( éventuellement le propriétaire ) du répertoire parent aux nouveaux fichiers et répertoires. Comme nous le verons plus loin, ces permissions standards sont très difficilement gérables par l explorateur de fichiers sous Windows. De plus, le nombre de groupes à administrer étant parfois très importants, il n est pas concevable de se limiter aux permissions standards. Cependant, et comme il faut bien définir des permissions aux fichiers et répertoires que l on voudra partager, il est recommandé de s en tenir aux entités standardisés du systèmes, à savoir root et le groupe "Admins du domaine". Ainsi, pour créer un nouveau répertoire, destiné à être partagé, les permissions à appliquer seront : drwxrws--- root Admins du domaine repapartager Cela s obtient par les commandes : mkdir repapartager chown root :"Admins du domaine" repapartager chmod u=rwx,g=rwxs,o= repapartager note : n oublier pas le SGID bit ( g=rwxs ), qui permettra la propagation du groupe propriétaire

"Admins du domaine" à tous les fichiers et répertoires. ( consulter la page rustinexfs pour les FS XFS ) Nous pouvons qualifier ces permissions comme des permissions "administratives" qui garantissent l accès aux fichiers par les administrateurs du domaine. 5.1.Les ACL Les ACL ( Access Control List ) ou Liste de controle d accès, comme leur nom l indique, permettent de définir des permissions à une liste d utilisateurs et/ou de groupes supplémentaires. La grande différence avec les permissions Linux, est que celles ci sont appliquées, non pas à des entités non définies, mais à des entités nommées. Par exemple on pourra définir des permissions à un groupe nommé, pas seulement au groupe propriétaire. 5.2.Les ACLs standards Les ACL standards ( ou minimale ) sont tout simplement les permissions Posix accordées au propriétaire, ou groupe propriétaire du répertoire et aux autres. la commande getfacl permet de lire les acls : getfacl repapartager # file : repapartager # owner : root # group : Admins\040du\040domaine user ::rwx group ::rwx other ::--- Les informations user ::, group :: et other :: correspondent aux permissions Posix. La modifications des permissions Posix par chmod, modifie également la valeur des ACL standard, quand il n y a pas d autres ACL ACL standard = permissions Posix ( si pas d autres d ACL ) = ACL minimales 5.3.Les ACLs d accès Les ACLs d accès ( ou étendues ) sont toutes les permissions supplémentaires accordées aux utilisateurs et groupes autres que le propriétaire et le groupe propriétaire. Il n est pas recommandé de placer des ACL pour des utilisateurs, car cela deviendrait rapidement ingérable. Efforcer vous de donner des ACL aux groupes. Créer un groupe pour un seul utilisateur n est pas choquant en soit, cela permet de bien séparer les individus de leur fonction. Par exemple, le groupe DIRECTEUR, ne peut contenir que le directeur. A sa mutation, il suffit de changer le membre du groupe DIRECTEUR sans toucher aux droits sur les fichiers. pour placer des ACL, pour un groupe, il faut utiliser la commande setfacl -m g : setfacl -m g :entite :permissions Il existe d autres arguments pour la commande setfacl, référez vous au man. Par exemple, les commandes : setfacl -m g :DIRECTEUR :rwx repapartager setfacl -m g :sambausers :r-x repapartager accordent les droits d écriture, de lecture et de parcours au groupe DIRECTEUR et les droit de lecture seule et de parcours au groupe sambausers.

Ces ACL sont représentées par la commande getfacl # file : repaparatger # owner : root # group : Admins\040du\040domaine user ::rwx group ::rwx group :sambausers :r-x group :DIRECTEUR :rwx mask ::rwx other ::--- - Pour supprimer une ACL, utiliser la commande setfacl -x g : - Pour supprimer toutes les ACL, utiliser la commande sefacl -b - Pour appliquer la commande setfacl en récursif sur tous les fichiers et sous-répertoires utiliser l option -R Il apparait, une nouvelle entrée d ACL qui est le mask. Cette entrée permet de masquer les permissions déclarées. Les permissions réellement appliquées ( permissions effectives ) sont celles issues du ET logique avec le masque. Ce masque est calculé à partir des permissions données au groupe propriétaire, c est pourquoi, il est impératif que les permissions du groupe propriétaire soit toujours rwx, pour éviter de masquer les ACL. D autre part, quand des ACL d accès sont positionnées, les ACL minimales ne seront pas modifiées par la commande chmod. 5.4.Initialisation et propagation des permissions étendues (ACL) Comment sont initialisées et propagées les ACL lors de la création de nouveaux fichiers ou répertoires En présence d ACL d accès, la création d un nouveau fichier ou répertoire ne modifie en rien le comportement d initialisation et de propagation des permissions. Tout nouveau fichier ou répertoire sera créé sans ACL. ( exepté les ACL minimales, qui correspondent aux permissions Posix ) Pour que des ACL puissent être propagées, le répertoire parent devra posséder des ACL par défaut. Les ACL par défaut Les ACL par défaut sont des ACL qui seront propagées aux nouveaux fichiers et répertoires. Ces nouveaux fichiers/répertoires auront, comme ACL d accès, la valeur des ACL par défaut. Les ACL par défaut sont également propagées aux nouveaux répertoires permettant ainsi une nouvelle propagation en cascade. Les ACL d accès et les ACL par défaut sont des données totalement indépendantes. Sous Linux, pour qu il ai propagation des ACL il faut que le répertoire parent possède des ACL par défaut. A partir de Samba, la propagation des ACL d accès est assurée, même si il n y a pas d ACL par défaut. Cependant, et dans ce cas, il n est plus possible de gérer correctement les droits à

partir du gestionnaire de fichier Windows. Il est possible d avoir des ACL d accès, différentes des ACL par défaut, mais cela n est pas recommandé pour un serveur de fichiers, car la gestion des droits, à travers Windows deviendrait rapidement incompréhensible. Nativement ce sont les ACL par défaut qui sont propagées, pas les ACL d accès. nouveau répertoire/fichier -> ACL d accès : les ACL par défaut du parent nouveau répertoire -> + ACL par défaut : les ACL par défaut du parent Pour créer des ACL par défaut, pour un groupe, la commande est setfacl -m d :g : setfacl -m d[efault] :g : : Pour revenir à l exemple précedent : setfacl -m d :g :DIRECTEUR :rwx repdirecteur setfacl -m d :g :sambausers :r-x repdirecteur Vous pouvez également utiliser la commande suivante pour recopier toutes les ACL d accès dans les ACL par défaut : getfacl access setfacl -d -M- La commande getfacl, pour ce répertoire donnera : # file : repdirecteur # owner : root # group : Admins\040du\040domaine user ::rwx group ::rwx group :sambausers :r-x group :DIRECTEUR :rwx mask ::rwx other ::--- default :user ::rwx default :group ::rwx default :group :sambausers :r-x default :group :DIRECTEUR :rwx default :mask ::rwx default :other ::--- On remarquera, que lorsque des ACL par défaut sont positionnées, des ACL par défaut pour les ACL standards ( Posix ) sont automatiquement positionnées, reprenant les permissions Linux pour le propriétaire et le groupe propriétaire. Donc la création d un nouveau fichier dans ce répertoire, sous Linux, donnera : - rw-rw---- toto Admins du domaine ficdetoto Remarquez que les permissions pour le groupe propriétaire est rw- et pour other ---, ceci ne correspond plus au UMASK de l utilisateur, c est la propagation des ACL standards. La directive

inherit permissions = yes n est donc théoriquement plus nécessaire sur Samba. La commande getfacl sur ce fichier donne : # file : ficdetoto # owner : toto # group : Admins\040du\040domaine user ::rwgroup :: rwx #effective :rwgroup : sambausers :r-x #effective :r group :DIRECTEUR :rwx #effective :rwmask :: rwother ::--- On remarquera qu il y a application d un masque ( rw-, qui est la valeur des permissions pour le groupe propriétaire ). Ceci permet de masquer le bit x ( exécution ), puisque que c est un fichier. Il y a pas non plus d ACL par défaut, c est également normal, il s agit d un fichier. Création d un répertoire : drwxrwx--- toto Admins du domaine reptoto L ACL par défaut pour les ACL standards est bien propagée (rwx pour le groupe, --- pour other ). # file : dirtoto # owner : toto # group : Admins\040du\040domaine user ::rwx group ::rwx group :sambausers :r-x group :DIRECTEUR :rwx mask ::rwx other ::--- default :user ::rwx default :group ::rwx default :group :sambausers :r-x default :group :DIRECTEUR :rwx default :mask ::rwx default :other ::--- Les ACL d accès et les ACL par défaut sont également bien propagées. Tout semble parfait, cependant... si nous créons un nouveau répertoire dans ce dossier : su toto cd dirtoto

mkdir newdir ll drwxrwx--- toto sambausers newdir/ Le nouveau sous répertoire, à comme groupe propriétaire, sambausers, et non pas Admins du domaine. Pourquoi? Le SGID bit n a pas été propagé. Quand des ACL par défaut sont positionnées, il faut que le créateur fasse partie du groupe propriétaire pour que SGID bit soit propagé sur un système de fichier XFS. C est un bug signalé de XFS. ( voir la page rustinexfs ) A partir de Samba, les ACL d accès seront propagées, même si il n existe pas d ACL par défaut. Cependant, le gestionnaire de fichier Windows n affichera pas les permissions si les ACL par défaut ne sont pas positionnées ce qui rendra la gestion des droits, par WIndows, très hasardeuse. 5.5.Manipulation des ACL à partir de Windows Comment manipuler les ACL à partir du gestionnaire de fichier Windows ( onglet sécurité ) Les permissions Linux Les permissions Linux, propriétaire, groupe propriétaire et autre, ne sont pas cochées dans le gestionnaire Windows, quand il s agit d un répertoire. Par contre, les entités correspondantes sont bien identifiées. (PNG) Il ne faut pas tenter de modifier les permissions Posix par l intermédiaire du gestionnaire Windows. C est pourquoi, on gardera comme groupe propriétaire le groupe "Admins du domaine", ce qui permettra de repérer qu il s agit bien d une entrée Posix. Il est impératif de définir un groupe propriétaire qui le sera le même pour tous les fichiers et répertoires ( "Admins du domaine" ) et clairement identifié. Ne jamais modifier les permissions à partir de Windows pour ce groupe. 5.5.1.Les ACL standards - minimales Les ACL minimales, sont également représentées dans le gestionnaire de fichiers Windows, il s agit des entrées CREATEUR PROPRIETAIRE et GROUPE PROPRIETAIRE et Tout le monde. Comme pour les entrées Posix, les permissions ne sont pas cochées. (PNG) Il ne faut pas modifier ces entrées par le gestionnaire. 5.5.2.Positionnement des permissions Le gestionnaire Windows permet d ajouter des permissions pour un groupe du domaine, par le bouton Ajouter. Les droits pris en compte sont alors : - LIRE-ECRIRE-PARCOURIR : controle total + tous les autres droits : rwx - LIRE-PARCOURIR : lecture exécution + afficher le contenu + lecture : r-x (PNG) Samba créé automatiquement les ACL par défaut correspondantes. Ce qui permet d afficher et de modifier les permissions. Les permissions ne s affichent pas Quand les permissions ne s affichent pas dans le gestionnaire Windows, et qu il s agit d un groupe autre que le groupe posix, cela signifie que les ACL par défaut ne sont pas positionnées ou alors qu il y a une différence entre les ACL par défaut et les ACL d accès du répertoire courant. (PNG)

Il faut impérativement corriger ces problèmes en affectant les bons droits à partir du gestionnaire Windows, ce qui aurra pour effet de postionner les ACL d accès et les ACL par défaut aux mêmes valeurs. Héritage des permissions à partir de Windows Les ACL par défaut sont reconnues comme telles par Windows Quand des ACL par défaut sont positionnées, celles ci sont propagées, à la création des nouveaux sous répertoires. Les mécanismes d héritage de Windows sont correctement pris en compte. Permissions héritées A partir du gestionnaire de fichier Windows, les permissions héritées du répertoire parent sont grisées. Vous ne pouvez donc pas les modifier sans casser l héritage, tout comme sous Windows. (PNG) A ce niveau, si on ajoute de nouvelles permissions, par Windows, celles ci ne seront pas grisées ( car ce ne seront pas des permissions héritées ), par contre elles le seront pour les nouveaux sous-répertoires. Modification de l héritage Tout comme sous Window, il est possible de casser l héritage pour un sous répertoire. Cela se fait en décochant la case : Permettre aux autorisations pouvant être héritées... (PNG) Il y a alors 2 possibilités : 1) copier les permissions héritées. 2) supprimer les permissions héritées. Copier les permissions héritées Celles ci seront alors considérées comme des permissions non héritées et leur modification sera possible. Samba mémorise l information d héritage dans un attribut du système de fichier ( EXT3 et XFS possèdent une quinzaine d attributs supplémentaires, en plus des droits et des ACL ). Supression des permissions héritées La supression supprime toutes les permissions héritées du répertoire parent. Seules les ACL qui ne correspondent pas à celles du répertoire parent sont conservées. Cependant, pendant cette opération les ACL minimales sont modifiées, notamment celle du groupe propriétaire qui est mise à 0 ( ), mais le masque n est pas modifié ( il reste à rwx ). Ce comportement n introduit pas de modification de l application des permissions, mais il peut entraîner une certaine incompréhension quand on lit les ACL par Linux. C est pourquoi, il est recommandé de ne pas supprimer les permissions héritées. Au besoin, il est préférable de les copier, puis de les supprimer. Rétablir l héritage Pour rétablir l héritage, il faut de nouveau cocher la case Permettre aux autorisations..., les ACL d accès et les ACL par défaut du répertoire parent seront alors recopiées. Attention cependant, si il existe déjà une ACL pour un groupe mais que les permissions sont différentes que celles du répertoire parent, celle ci ne sera pas modifiée. Recommandations En règle générale, il n est pas conseillé de casser l héritage dans les partages, car cela donne une très mauvaise image de l organisation des droits surtout dans le cas ou l on doit réaffecter les permissions en récursif sur un répertoire racine.

Les droits par la pratique Conseils et recommandations. Cette page reprend les constations développées dans les pages précédentes. Merci de vous y référer pour une meilleure compréhension. Les utilisateurs et les groupes Utiliser un client SMB/CIFS ( USRMGR ) pour créer/modifier vos utilisateurs et vos groupes globaux. Si ce n est pas le cas, et si la base de données des utilisateurs à été initialisées avec un client Ldap ( PhpLdapAdmin, Lam... ), vérifier que les groupes principaux Windows ( SambaPrimaryGroupSID ) et les groupes principaux Linux correspondent entre eux ( gidnumber ) Vérifier que tous vos utilisateurs appartiennent au groupe "Utilsa. du domaine" RID 513 ( gid sambausers ) et que ce groupe soit leur groupe principal ( fixer le groupe principal ). Vérifier que les utilisateurs ayant fonction d administrateur appartiennent en plus, au groupe "Admins du domaine" RID 512 et que ce groupe soit leur groupe principal (fixer le groupe principal ). Le système de fichiers Efforcer vous de réserver une partition pour les répertoires partagés. ( /smb par exemple ). Cette partition sera formatée en XFS ou EXT3. Dans le cas d une partition EXT3, celle ci devra être montée avec l option acl. - les performances sont nettement moins bonnes en EXT3. - XFS contient un bug référencé concernant la propagation du groupe propriétaire des répertoires avec les ACL. Une rustine est proposée dans la page rustine XFS pour corriger ce problème en attendant une mise à jour éventuelle du noyau Linux. La sécurisation Mandriva Mandriva propose en standard un système de sécurisation ( DrakSec ) qui a la particularité de rétablir périodiquement ( toutes les heures ) les permissions sur les fichiers et répertoires à une valeur définie par l administrateur ( msec ). Vérifier, que les directives de sécurisation ne modifient pas les permissions de vos répertoires partagés ( utiliser DrakPerm en mode graphique, ou le fichier /etc/security/msec/perm.local ). Une raison de plus pour que vos partages soient dans une partition bien séparée du reste des fichiers Linux. La création des partages Les répertoires partagés sont créés sous Linux - il n existe pas d autre moyen. Autant que possible, les répertoires partagés seront créés directement à la racine de la partition réservée pour cela (/smb par exemple). Il faut éviter d avoir des répertoires partagés inclus dans des partages existant car cela ne facilite pas l administration des permissions. Il faut réfléchir à la stratégie des permissions avant de définir les partages : qui peut lire?, qui peut écrire?. Créer le répertoire partagé avec le compte root : mkdir Fixer le propriétaire et le groupe propriétaire du répertoire :

chown root :"Admins du domaine" Fixer les permissions dites administratives et le bit de propagation du groupe propriétaire : chmod u=rwx,g=rwxs,o= attention : le sgid bit est ici fixé, par le s de groupe : g=rwxs, ne pas l oublier Définir les ACL du partage en lecture A ce niveau, il faut définir le groupe qui sera autorisé à lire dans le partage. Si tous les utilisateurs du domaine peuvent lire, ce sera le groupe sambausers ( pour un PDC ), ou le groupe "Utilisa. du domaine" (pour un serveur Membre). Si le contenu du partage ne doit pas être lu par tout le monde ( les utilisateurs du domaine ), il faut indiquer le(s) groupe(s) autorisé(s) à lire. A ce sujet, samba ne gère pas les groupes locaux, c est à dire les groupes de groupes, il faut donc soit - créer un groupe qui contienne les membres des sous-groupes - soit affecter une ACL pour chaque groupe ( dans ce cas il faudra casser l héritage pour permettre l écriture ) setfacl -m g :sambausers :r-x ou setfacl -m g : :r-x setfacl -m g : :r-x... ensuite, il faut initialiser les ACL par défaut qui seront propagées aux nouveaux sousrépertoires du partage. On utilisera toujours la copie des ACL d accès. getfacl access setfacl -d -M- Il n est pas conseillé de donner des droits d écriture sur le répertoire à partager. Afin de mieux maitriser l organisation des répertoires sur le serveur, ce droit n est donné que par les permissions posix au groupe "Admins du domaine". Les droits d écriture seront ensuite donnés sur les sous-répertoires par l administrateur, directement sous Windows. Cela permet également d éviter que les utilisateurs n enregistrent des fichiers directement au premier niveau du partage et les oblige ainsi à les classer dans les sous-répertoires. Pour les partages qui doivent contenir beaucoup de répertoires, vous pouvez donner les droits d écriture à un groupe restreint de personnes ( PRI de service par exemple ), pour leur permettre de créer des nouveaux répertoires dans le partage. attention : les commandes décrites ci dessus sont à appliquer pour la création de nouveaux partages. Si le partage existe déjà et qu il contient déjà des fichiers il faut appliquer les commandes en récursif avec l option - R pour que les modifications soient appliquées aux répertoires et fichiers existants. Auparavant, utiliser la commande setfcal -R -b pour supprimer toutes les ACL existantes. Pour fixer les ACL par défaut, utiliser alors la commande setfacl -R -m d :g pour chaque groupe, car la commande globale de recopie des ACL d accès dans les ACL par défaut ne fonctionne pas en récursif. La définition du partage dans Samba Pour définir le partage dans Samba, utilisez WebMin, SWAT ou éditer le fichier /etc/samba/smb.conf

[NOMDUPARTAGE] path=/smb/nouveau_partage writable = yes valid users = "@sambausers" Cela suffit, il n est pas nécessaire d indiquer de directives d acces supplémentaires car elles feraient double emploi avec les ACL et introduiraient un niveau de sécurité supplémentaire qui pourrait être incompatible avec les ACL. On peut rajouter la directive public = yes si on veut que le partage soit accessible par un compte Invité. ( voir la doc sur la configuration de samba ) Les options suivantes devront être vérifiées dans la section globale du fichier smb.conf : - inherit acls = yes ; permet la propagation normale des acl par défaut, sans être masqué par un éventuel mode de permission. - map acl inherit = yes ; permet de mémoriser dans les attributs étendus du système de fichiers les informations telles que héritage ou lecture seule qui sont des attributs propres à Windows non pris en compte par les ACL. - nt acl support = yes ; indique de prendre en compte les ACL comme des permissions Windows. L onglet sécurité du gestionnaire de fichiers Windows est alors activé. - inherit permissions = no ; permet la propagation des permissions posix aux nouveaux répertoires et fichiers. Cette directive n est pas nécessaire, puisque que ce sont les ACL minimales par défaut qui agissent. Mettre no permet la prise en compte des directives create mask, directory mask... pour les partages homes et Profiles. Recharger le fichier smb.conf : service smb reload La création des sous-répertoires Cela se fait en accedant au partage sous Windows, sous un compte "Admins du domaine". A ce niveau seuls les "Admins du domaine", peuvent créer des répertoires. A la création, les ACL par défaut seront héritées du répertoire parent. Donner les droits d écriture, par l onglet sécurité, dans les nouveaux sous-répertoires ( Controle total ) aux groupes supplémentaires ( qui doivent avoir pour membres les utilisateurs du groupe fixés en lecture sur le répertoire du partage ). Vous pouvez également casser l héritage, en donnant un droit d écriture aux groupes du répertoire parent qui n en ont pas. Dans ce cas, copier les permissions héritées et modifier les. Il faut éviter de casser l héritage trop profondément dans la hiérachie pour garder une bonne visibilité. Ne jamais modifier ou supprimer les permissions des groupes posix "Admins du domaine", GROUPE PROPRIETAIRE, Tout le monde, de l utilisateur propriétaire et CREATEUR PROPRIETAIRE. Ces permissions ne sont pas cochées pour les répertoires. Si des permissions ne sont pas visibles ( aucune case cochée ), il s agit d un des groupes precedement cité ou du créateur propriétaire, il ne faut pas les modifier. Si il s agit d un autre groupe du domaine, c est qu il y a une incohérence entre les ACL d accès et les ACL par défaut, corriger le problème en réaffectant les bons droits en récursif, tout devrait rentrer dans l ordre. Si des permissions apparaissent en grisé, elles ne sont pas modifiables, il s agit de permissions héritées du répertoire parent. Dans ce cas on peut casser l héritage en décochant la case Permettre aux autorisations pouvant être héritées du parent d être propagées à cet objet. Il faut alors copier les permissions, plutôt que les supprimer. On pourra ensuite les modifier ou

les supprimer individuellement. Pour rétablir l héritage, cocher la case Permettre aux autorisations.... Les ACL du parents seront alors recopiées sauf celles qui diffèrent. Ne donner pas de permissions à des utilisateurs, donner les à des groupes, même si il n ont qu un seul membre. Cela permet de séparer les fonctions des individus et de ne pas à avoir à modifier les permissions quand un utilisateur change de groupe. Propriétaires des fichiers. A la création, tout nouveau fichier et répertoire aura comme propriétaire l utilisateur qui l a créé. Si le fichier est modifié par un logiciel ( ce qui généralement le cas ), le propriétaire peut changer si le logiciel fait une nouvelle copie du fichier ( Word 2000 par exemple ). Maintenant, c est au choix : - soit vous préférez que chaque créateur reste propriétaire de ses fichiers ( ça permet de savoir qui a fait quoi, au cas où ), dans ce cas, si un utilsateur change de groupe, il restera propriétaire des ses fichiers et répertoires et pourra toujours les modifier. - soit, on applique une stratégie d héritage de propriétaire. Tous les fichiers et répertoires auront le même propriétaire que le répertoire parent ( root ). Pour cela il faut indiquer la directive inherit owner = yes dans le fichier smb.conf Modification récursive des permissions. Quand les répertoires existent déjà dans le partage, il faut appliquer toutes les opérations de droits en récursif. Cela peut se faire par Windows, ( sauf sur le partage lui même ), par le bouton Avancé - case Réinitialiser les permissions sur tous les objets..., mais cela est très long. Préférez, dans ce cas, les commandes setfacl -R -m -g : et setfacl -R -m d :g :, en ayant pris soin, si on veut repartir à zéro, de supprimer toutes les acl par setfacl -R -b. rustine XFS Une rustine qui permet de colmater une brèche de sécurité du système XFS Le système de fichier XFS ( extended Files System ) développé par Silicon Graphic, est le système actuellement le plus performant en terme de journalisation, capacité à gérer les quotas, les acl et les attributs étendus. Cependant, il existe un bug, qui ne permet pas de propager le SGID bit d un répertoire quand des ACL par défaut sont positionnées et que l utilsateur qui créé le répertoire ne fait pas partie du groupe propriétaire du répertoire parent. Le SGID bit est utilisé dans la stratégie de permissions exposée dans ce guide, justement pour éviter de de fixer le groupe propriétaire des répertoires par celui du groupe principal de l utilisateur et donner ainsi des droits d écriture à tous les membres du groupe ( les droits rwx, sont propagés par l ACL minimale par défaut ). Pour corriger cela ( ou plutôt pour réparer ), on appliquera une stratégie de sécurité équivalente à msec. msec est développé en python, qui n utilise pas la librairie de Linux, donc ne connait pas les groupes du Ldap. De plus, msec ne permet pas d appliquer les modifications de permissions en récursif. Nous utiliserons alors un très léger script, déclenché toutes les heures par cron afin de rétablir le groupe propriétaire et le SGID bit sur tous les répertoires partagés. Il suffit de copier les lignes suivantes dans un fichier texte et de l enregistrer dans le répertoire /etc/cron.hourly sous le nom ( peut importe ) rustinexfs

#!/bin/sh # correction du SGIDbit pour XFS quand ACL par defaut chgrp -R "Admins du domaine" /smb/* chmod -R g+s /smb/* A condition que vos partages se trouvent tous et uniquement dans /smb ( sinon modifier ou recréer les 2 dernières lignes pour chaque répertoire partagé ). Donner le droit d exécution pour root : chmod 750 rustinexfs Ainsi, la faille de sécurité ne sera pas présente plus d une heure. C est un moindre mal. NB : ce bug ne pourra être corrigé ( si il l est un jour ) que par un changement de version du noyau linux. NB : ce script introduit également un sgid bit sur les fichiers. Ce n est pas génant dans le cas où ce ne sont pas des fichiers exécutables par Linux ( de plus le groupe Admins du domaine n a aucun droit sous Linux )