====== 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)