Je cherche avoir l’accès en écriture du dossier config de HA depuis une autre instance avec code serveur d’installé en docker.
Architecture :
HA sous VM proxmox installé via le script avec Samba share installé (via module complémentaire) et autorisation de mon masque reseau 192.168.10.0/16
VScode server (linuxserver) installé en docker dans une autre VM.
Quand j’ouvre le dossier ha_prod depuis VS code, je vois et peux éditer les fichiers, mais pas les sauvegarder.
Voici l’erreur :
Failed to save 'configuration.yaml': Unable to write file 'vscode-remote://ndd.fr/ha_prod/configuration.yaml' (NoPermissions (FileSystemError): Error: EACCES: permission denied, open '/ha_prod/configuration.yaml')
Je vois bien que c’est un problème de permission, mais j’utilise bien les bons accès vu que je vois les fichiers.
Les droits d’accès des fichiers sous linux sont découpés en trois niveaux user, group, other. Et pour chaque niveau 3 type de droit r(ead), w(rite), x (execute).
Au total les droits des fichiers et des répertoires sont de la forme (par exemple) rwx,rw_,rw_
Autrement dit le user peut lire/écrire/exécuter. Le groupe seulement lire et écrire (mais pas exécuter), autres idem.
Là, ton partage samba utilise le user X, ton container le user Y (qui n’est pas forcément dans le même groupe que X ) et Y n’a pas les droits d’écriture mais seulement de lecture.
Pour « arranger » les choses, ce qui est important ce n’est pas le nom X (mcfly) mais le UID (User ID) et le GID (Group ID) du côté samba et du côté vscode.
Le plus simple (!), c’est d’utiliser le même uid et gid partout et les droits par défaut (un user peut lire et écrire ses fichiers) vont faire en sorte que ça marche.
PS: J’ai simplifié un tantinet les histoires de droits, que les puristes me pardonnent.
j’ai bien mis le puid et le guid, malheureusement, ils ne sont pas sur la meme instance donc pas user commun.
je vais verifier les histoires de chmod.
merci encore.
Petite question, si j’accede au partage samba avec l’user créé, il devrait m’autoriser l’écriture ? ou c’est peut etre parce que je map le volule sur un dossier ?
j’ai essayé en ajoutant :rw a la fin du mappage de volume mais ne change rien.
Pas tout à fait… Tu montes sur le container vscode le répertoire avec le bon user/pwd. Mais, ensuite, quand tu utilises le container, les actions que tu y réalises s’exécutent avec les droits de l’utilisateur PUID/PGID. C’est ça la deuxième couche dont je parle.
Si je comprends correctement la situation, ton répertoire est bien monté (avec le smbuser, ça marche). Mais, l’édition se fait avec les droits du user PUID qui lui peut ne pas avoir les droits d’écriture sur le répertoire.