[Linux] Monter un partage NAS sur Linux

Drthrax74

Chevalier Jedi
1 Janvier 2021
483
113
88
Bonjour à tous,

Pour permettre l'accès au donnée du NAS depuis un environnement Linux, on peut réaliser un montage de partage depuis le gestionnaire de service SystemD ce qui permet de rendre visible dans l'explorateur de fichier le nom du partage.

Etape 0: Récupérer l'UID et le GID du compte utilisateur
Bash:
id

Etape 1: Passer en Root
Bash:
sudo -i

Etape 2: Credentials
Le fichier Credentials, contiendra les identifiants de connexion au NAS. (On peut en crée plusieurs en cas d'utilisation de plusieurs compte)
Remplir le champs Username et Password.
Bash:
# Création du dossier secret
mkdir /etc/credentials;

# Création du fichier .smbpassword:
echo "username=
password=
domain=
vers=3.0
file_mode=0777
dir_mode=0777
workgroup=WORKGROUP
_netdev" > /etc/credentials/.smbpassword;

# Edition du fichier avec nano:
nano /etc/credentials/.smbpassword;

# Edition des permissions (Propriétaire: RW uniquement)
chmod 600 /etc/credentials/.smbpassword;


Etape 3: Définir le chemin d'accès local
Le chemin définira le nom du service SystemD, c'est obligatoire.
Dans l'explorateur l'accès utilise les / pour se déplacer dans l'arborescence. (Exemple: /mnt/Home)
Pour SystemD les / deviennent des - pour le nom du service. (mnt-Home.mount)
Ensuite si on veut des majuscules dans le chemin, il faudra respecter l'écriture qu'on à définit dans le nom du dossier mais aussi sur le service.

Exemple:
Bash:
# Création du Dossier
mkdir /mnt/Download

# Nom du service
mnt-Download


Etape 4: Crée le service Mount
- x-gvfs-show: Afficher le montage dans l'interface graphique Linux
- What: Chemin du partage (<IP NAS>/<NOMDEMONPARTAGE>)
- Where: Chemin Local
- uid: Utilisateur qui aura les permissions
- gid: Groupe principale de l'utilisateur qui aura les permissions.
- Le nom du fichier en sortie est à modifier (/etc/systemd/system/mnt-XXXXX.mount)

Bash:
echo "[Unit]
  Description=Montage du partage XXXXX
  Requires=network-online.target
  After=network-online.service

[Mount]
  What=//192.168.1.X/XXXXX
  Where=/mnt/XXXXX
  Type=cifs
  TimeoutSec=5s
  Options=credentials=/etc/credentials/.smbpassword,x-gvfs-show,uid=1000,gid=984

[Install]
  WantedBy=multi-user.target" > /etc/systemd/system/mnt-XXXXX.mount;


Etape 5: Gestion du service
Bash:
# Recharger la liste des services:
systemctl daemon-reload;

# Démarrer le service (Stop & Start)
systemctl restart mnt-XXXXX.mount

# Vérifier le status du service
systemctl status mnt-XXXXX.mount

# Activer le service si aucune erreur
systemctl enable mnt-XXXXX.mount

# Désactiver le service si une erreur
systemctl disable mnt-XXXXX.mount

Etape 6: Paquet Nécessaire
Les paquets suivants sont nécessaire sur un environnement Linux.
Code:
sudo apt install -y samba; # Serveur
sudo apt install -y cifs-utils; # Prise en charger de CIFS
sudo apt install -y smbclient; # Client SMB
 
Dernière édition:
Bonjour,
Pour un serveur Samba, voici quelque petite info fort utile.

#[NomdemonPartage]
#comment = Mon commentaire
#path = /chemin
#browseable = yes | no (Partage Visible ou cacher)
#writable = yes | no
#write list = # Si writable absent
#read only = yes | no
#valid users = USER1, USER2, @groupe12000 %S (Utilisateurs, Groupe ou Services autorisés,)
#force user = utilisateur de substitution
#create mask = 0700 (Conseiller) | 0755 (déconseiller)
#directory mask = 0700 (Conseiller) | 0755 (déconseiller)
#guest ok = no | yes (Permet aux clients de se connecter au répertoire partagé sans fournir de mot de passe.)

#vfs object = recycle
#recycle:exclude = *.TMP *.tmp *.temp ~$* *.log *.bak
#recycle:exclude_dir = Corbeille
#recycle:keeptree = true
#recycle:repository = ./Corbeille | ./Corbeille/%U (Dossier Homes)
#recycle:touch = yes
#recycle:versions = true


[NomdemonPartage]
Définir le nom du dossier de partage visible dans l'explorateur de fichier


comment = Mon commentaire
Lorsqu'on met le curseur sur le dossier de partage, on peut voir le commentaire

path = /monchemin
Chemin d'accès sur le serveur linux.

browseable = yes/no
Permet de rendre le dossier de partage visible (yes) ou de le rendre cacher (no). Si le partage est cacher, il suffit d'ajouter à la fin \\monserveur\NomdemonPartage pour y accéder.

writable = yes/no
read only = yes/no

SI la valeur est sur Yes, on peut écrire dans le dossier. Si la valeur est sur no, on pourras que lire les données.

write list =
Liste d'utilisateur, groupe qui auront le droit d'écrire si le dossier est en lecture seul.

valid users = marc
Utilisateur autorisé à accéder au partage. (USER1, USER2, @groupe12000 %S) . Dans mon exemple l'utilisateur Marc est autorisé.

force user = root
L'utilisateur Marc (voir ci dessus) aura les permissions du root. (Fort utile si le dossier sur la machine est en root)

create mask = 0700 (Conseiller) | 0755 (déconseiller)
Définit les permissions lors de création de FICHIER.
700 (RWX --- ---) : Seul le propriétaire peut tout faire.
755 (RWX R-X R-X): Le propriétaire peut tout faire. Le groupe et autre on des droits de lecture et execution.

directory mask = 0700 (Conseiller) | 0755 (déconseiller)
Définit les permissions lors de création de DOSSIER.
700 (RWX --- ---) : Seul le propriétaire peut tout faire.
755 (RWX R-X R-X): Le propriétaire peut tout faire. Le groupe et autre on des droits de lecture et execution.

guest ok = no/yes
Permet aux clients de se connecter au répertoire partagé sans fournir de mot de passe.


Corbeille réseau
#vfs object = recycle
#recycle:exclude = *.TMP *.tmp *.temp ~$* *.log *.bak
#recycle:exclude_dir = Corbeille
#recycle:keeptree = true
#recycle:repository = ./Corbeille | ./Corbeille/%U (Dossier Homes)
#recycle:touch = yes
#recycle:versions = true