Résoudre les erreurs de permission NFS (EACCES) entre Synology et Docker
🚨 Problème d'ACL Synology avec NFS + Docker
TL;DR : Ton conteneur Docker ne peut pas écrire sur ton partage NFS Synology malgré des permissions
777? C'est l'ACL Windows qui prime sur les bits Unix. Solution :synoacltool -delrécursif.
📖 Contexte
Tu as configuré un partage NFS sur ton Synology pour stocker les backups de Proxmox Backup Server (PBS) tournant dans Docker. PBS démarre, puis crash avec :
Error: unable to create rrdb stat dir - EACCES: Permission denied
Pourtant, ls -la affiche drwxrwxrwx et le propriétaire est bien backup:backup (UID 34).
La cause racine : Sur DSM, les dossiers partagés créés sur Btrfs/ext4 ont l'ACL Windows activée par défaut. Cette ACL prend le pas sur les permissions Unix classiques, même via NFS. Résultat : les bits rwx visibles sont ignorés, et l'écriture est refusée pour l'UID du conteneur.
🔍 Symptômes typiques
- Container Docker qui boucle en crash (
restart: always+ erreurEACCES). ls -laaffichedrwxrwxrwxou0777, maismkdiréchoue.- Les lignes
ls -laont un+après les permissions :drwxr-xr-x+. - Le squash NFS est déjà sur "Pas de mappage" — donc ce n'est pas ça.
🛠️ Diagnostic rapide
1. Identifier l'UID attendu dans le conteneur
docker run --rm --entrypoint sh IMAGE -c "id backup"
# Exemple : uid=34(backup) gid=34(backup)
2. Vérifier les permissions actuelles sur l'hôte
ls -la /mnt/ton-partage-nfs
# Cherche le + après les permissions
3. Tester l'écriture réelle avec le bon UID
docker run --rm -v /mnt/ton-partage-nfs:/data --user 34:34 --entrypoint sh IMAGE \
-c "mkdir -p /data/test && echo OK || echo FAIL"
Si FAIL malgré 777 → ACL Synology en cause.
4. Confirmer via SSH sur le Synology
ssh admin@IP_SYNOLOGY
sudo synoacltool -get /volume1/TonDossier
# Si tu vois des entrées [0], [1], etc. → ACL active
✅ Résolution (étape par étape)
Étape 1 : Supprimer l'ACL du dossier racine
sudo synoacltool -del /volume1/TonDossier
Étape 2 : Retirer les flags d'archive ACL
sudo synoacltool -del-archive /volume1/TonDossier has_ACL
sudo synoacltool -del-archive /volume1/TonDossier is_support_ACL
Étape 3 : Nettoyer récursivement toutes les ACL des sous-éléments
sudo find /volume1/TonDossier -exec synoacltool -del {} \;
Étape 4 : Vérifier qu'il n'y a plus de +
ls -la /volume1/TonDossier
# Plus de + après les permissions (sauf @eaDir, dossier système)
Étape 5 : Remettre des permissions Unix propres
chown -R 34:34 /volume1/TonDossier
chmod -R 0755 /volume1/TonDossier
Étape 6 : Retester depuis l'hôte Docker
docker run --rm -v /mnt/ton-partage-nfs:/data --user 34:34 --entrypoint sh IMAGE \
-c "mkdir -p /data/test && echo OK || echo FAIL"
Si OK → ✅ C'est résolu.
🎯 Bonnes pratiques préventives
Pour tes futurs partages NFS Docker :
| Réglage | Valeur recommandée |
|---|---|
| Squash | Pas de mappage (No mapping) |
| Sécurité | sys uniquement (décoche Kerberos si pas utilisé) |
| Permissions | Appliquer synoacltool -del dès la création si tu utilises Docker |
📋 Référence rapide (copier-coller)
# SSH sur Synology
ssh admin@IP_SYNOLOGY
# Supprimer ACL
sudo synoacltool -del /volume1/TonDossier
sudo synoacltool -del-archive /volume1/TonDossier has_ACL
sudo synoacltool -del-archive /volume1/TonDossier is_support_ACL
sudo find /volume1/TonDossier -exec synoacltool -del {} \;
# Vérification
ls -la /volume1/TonDossier
# Côté hôte Docker
chown -R 34:34 /mnt/ton-partage-nfs
chmod -R 0755 /mnt/ton-partage-nfs
# Test
docker run --rm -v /mnt/ton-partage-nfs:/data --user 34:34 --entrypoint sh IMAGE \
-c "mkdir -p /data/test && echo OK || echo FAIL"
💡 Le saviez-vous ?
Les ACL (Access Control Lists) sont un héritage du monde Windows (NTFS). Synology les a intégrées pour faciliter la compatibilité SMB, mais elles créent des conflits silencieux avec les workflows Linux/NFS/Docker qui s'attendent à des permissions Unix classiques. C'est un peu comme essayer de conduire une voiture avec un volant à droite sur une autoroute française : techniquement possible, mais tout le système est conçu pour l'autre sens.
Auteur : Jonathan BIODORE
Date : 27 septembre 2026
Tags : #Synology #NFS #Docker #Proxmox #ACL #Troubleshooting
Aucun commentaire à afficher
Aucun commentaire à afficher