====== Créer des partages réseau sur un serveur autonome ====== Déjà petite explication par ce que j'entends par autonome. Pour moi autonome veut dire sans authentification centralisé par un AD. Cependant, il sera possible de mettre en place des ACL basé sur les groupes ou les noms d'utilisateurs. Il faut commencer par installer tout les packets nécessaires : ==== Installation et configuration : ==== # apt install samba acl xattr Ensuite il vous faudra remplacer le contenu du fichier ///etc/samba/smb.conf// par celui ci: [global] admin users = sambaadmin server string = Serveur de fichiers workgroup = WORKGROUP log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d map to guest = Bad User obey pam restrictions = Yes pam password change = Yes passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . passwd program = /usr/bin/passwd %u server role = standalone server unix password sync = Yes dns proxy = No idmap config * : backend = tdb store dos attributes = Yes map acl inherit = Yes vfs objects = acl_xattr [Mon partage] path = /mnt/data/Mon partage read only = No Pour créer des partages multiples, il vous faudra simplement copier/coller la section "Mon partage" et de l'ajuster. Il vous faudra définir un mot de passe au compte "sambaadmin" : # smbpasswd -a sambaadmin puis on va redémarrer les services samba : # systemctl restart smbd nmbd ==== Création des groupes et des utilisateurs : ==== === Créer un groupe === Alors il vous faudra simplement ajouter cette ligne au fichier ///etc/group// : groupe1:x:10000:utilisateur1,utilisateur2 qu'il faudra ajuster : * **groupe1** --> nom du groupe * **x** --> information lié au mot de passe, a ne pas modifier dans notre cas * **10000** --> gid, unique pour chaque groupe/utilisateur * **utilisateur1,utilisateur2** --> utilisateurs présent dans le groupe Puis il faudra l'ajouter a samba : net groupmap add rid=10000 ntgroup="groupe1" unixgroup=groupe1 type=d === Créer un utilisateur === Alors il vous faudra simplement ajouter cette ligne au fichier ///etc/passwd// : utilisateur1:x:20000:65534:Prénom NOM,Adresse,Num de tel,adresse mail:/dev/null:/bin/false qu'il faudra ajuster : * **utilisateur1** --> nom d'utilisateur * **x** --> information lié au mot de passe, a ne pas modifier dans notre cas * **20000** --> uid, unique pour chaque groupe/utilisateur * **65534** --> gid, groupe principal de l'utilisateur, là définit par le celui "nobody", peut réster comme ça * **Prénom NOM,Adresse,Num de tel,adresse mail** --> Information administrative, pas obligatoire. * **/dev/null** --> répertoire personnel de l'utilisateur, définit sur /dev/null par sécurité * **/bin/false** --> Shell par défaut, définit sur /dev/fasle par sécurité Puis il faudra l'ajouter a samba via : # smbpasswd -a utilisateur1 ==== Définition des ACL ==== Seul les utilisateurs (ou groupe) ayant la permission SeDiskOperatorPrivilege ont le droit de changer les permissions sur les partages réseaux. Par défaut, seul les administrateurs samba ont le droit de les modifier. Pour ajouter cette permission à un groupe ou un utilisateur, il vous faut taper (en ayant le mot de passe du compte sambaadmin : net rpc rights grant "groupe1" SeDiskOperatorPrivilege -U sambaadmin Puis vous pourrez modifier vos ACL. Pour cela je vous renvoie vers la [[https://wiki.samba.org/index.php/Setting_up_a_Share_Using_Windows_ACLs#Setting_Share_Permissions_and_ACLs|page de documentation officiel de SAMBA]] (en Anglais) ==== Ajout de la corbeille réseau ==== Pour cela il vous faudra ajouter ceci dans la section du partage dans le fichier ///etc/samba/smb.conf// : vfs objects = recycle,acl_xattr recycle:excludedir = /recycle,/tmp,/temp,/TMP,/TEMP recycle:exclude = *.tmp,*.temp,*.o,*.obj,*.TMP,*.TEMP recycle:noversions = *.tmp,*.temp,*.o,*.obj,*.TMP,*.TEMP recycle:versions = No recycle:keeptree = Yes recycle:touch = Yes recycle:repository = /mnt/data/%S/Corbeille et chaque fichiers supprimés seront placer dans le dossier Corbeille a la racine dans le dossier ///mnt/data/%S/Corbeille// (%S représente le nom du partage)