Bonjour,
J'ai un partage Samba contenant des fichiers et des liens symboliques vers d'autres fichiers. L'option suivante est activée sur le partage:
follow symlinks = yes
Je monte ce partage Samba via une commande similaire à:
mount -t cifs //host/share mountpoint
Si je fais un ls -l dans un sous-répertoire de mountpoint, j'obtiens par exemple:
-rw-rw-rw- 1 root root 732372992 Jan 26 2008 fichier_regulier1
lrwxrwxrwx 1 root root 21 Oct 23 18:09 fichier_regulier2 -> ../fichier_regulier2
Les liens symboliques sont donc vus comme tels même à travers le montage CIFS. Je peux accéder au contenu des fichiers pointés par ces liens.
Mon problème:
certaines de mes applications ignorent tout ce qui n'est pas un répertoire ou un fichier régulier ; elles ignorent donc les liens symboliques.
Par conséquent, elles n'accèdent pas aux fichiers pointés par les liens symboliques de ce partage.
Savez-vous s'il est possible de configurer le serveur Samba pour qu'il n'exporte pas les liens symboliques comme tels, mais qu'il les exporte comme si c'était directement les fichiers pointés eux mêmes, de façon à ce qu'un montage CIFS ne puisse pas différencier un fichier régulier d'un lien.
L'exemple précédent me donnerai alors:
-rw-rw-rw- 1 root root 732372992 Jan 26 2008 fichier_regulier1
lrwxrwxrwx 1 root root 21 Oct 23 18:09 fichier_regulier2
Je vous remercie pour votre aide.
Cordialement.
# Alternative
Posté par rakoo (site web personnel) . Évalué à 3.
Une alternative est de faire un
mount --bind
de ton répertoire source vers ton répertoire destination. C'est même la solution préconisée pour empêcher les utilisateurs d'un serveur FTP d'accéder à ce à quoi ils n'ont pas le droit.Par contre, c'est manuel et peut vite devenir dantesque si tu as trop de
mount
disparates.Et je n'ai malheureusement aucune idée pour Samba.
[^] # Re: Alternative
Posté par jbbourgoin (site web personnel) . Évalué à 2.
on peut aussi ajouter à son fstab :
Et ça monte tout seul au prochain démarrage
[^] # Re: Alternative
Posté par bluelambda . Évalué à 2.
Ca pourrait être une solution, mais je préfèrerai éviter toute modification coté client, même si en dernier recours c'est peut-être ce qu'il me faudra faire.
Mais merci à vous deux car je ne connaissais pas cette méthode!
[^] # Re: Alternative
Posté par rakoo (site web personnel) . Évalué à 2.
Non non, c'est ce que tu fais cote serveur.
Tu definis un repertoire
/shared
sur ton serveur, et tu dis a Samba de le partager. En parallele, tu lances :Et tes applications n'y verront que du feu. Elles ne sauront pas ce qu'il y a réellement derrière
/shared
. Du coup, Samba va partager un dossier qu'il pense être constitue de simples fichiers et dossiers. En bonus, si tuchroot
tes clients, ils ne pourront pas remonter dans l'architecture du serveur.Si je ne me trompe pas, c'est la version générique de la commande
ln
, qui a l'avantage de marcher d'une partition A a une partition B.[^] # Re: Alternative
Posté par bluelambda . Évalué à 2.
Ah oui en effet, vu comme ça ça peut être une solution très intéressante!
Merci rakoo!
[^] # Re: Alternative
Posté par bluelambda . Évalué à 1.
Avec la solution du mount --bind j'ai bien mes fichiers accessibles dans un nouveau point de montage, cependant les liens symboliques sont toujours vus comme des liens.
Coté client avec montage CIFS ça ne fonctionne donc pas mieux, car les liens symboliques sont toujours vus comme tel, et non pas comme des fichiers réguliers.
Je n'ai peut être pas compris quelque chose?
[^] # Re: Alternative
Posté par rakoo (site web personnel) . Évalué à 2.
J'ai peut-être été rapide : le
mount --bind
est censé remplacer le lien symbolique. Donc le principe est de supprimer les liens symboliques et de les remplacer par cemount
, ou par unln
. C'est pour ça que j'ai prévenu : ça peut devenir énorme.[^] # Re: Alternative
Posté par bluelambda . Évalué à 1.
Ah oui en effet, j'avais mal compris, je pensais que ça aurait fonctionné pour un répertoire entier de liens ;)
Bon ben vu que j'ai des milliers de liens, je pense que je vais mettre de coté cette solution.
# C'est crade mais ...
Posté par Batchyx . Évalué à 6.
Il faut désactiver les unix extensions sur le serveur (ou le client ?).
J'avais le même problème quand j'ai voulu utiliser des liens symboliques pour pouvoir partager des fichiers qui ne sont pas dans le répertoire partagé. Avec les unix extensions, les linux voyaient un lien symbolique qui pointait vers un fichier qui n'existe pas sur les clients, sans, ils voyaient un fichier ordinaire.
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 3.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: C'est crade mais ...
Posté par bluelambda . Évalué à 2.
J'ai testé rapidement ça a l'air de fonctionner, il me faudra des tests plus approfondis pour voir si cette solution est acceptable.
Ca aurait été bien de pouvoir désactiver les unix extensions que sur ce partage, mais on dirait que ce n'est qu'une option de configuration globale.
Je vous remercie en tout cas pour votre aide!
[^] # Re: C'est crade mais ...
Posté par reno . Évalué à 2.
Tu pourrais peut-être faire une suggestion de fonctionnalité au projet Samba?
# A voir...
Posté par lolop (site web personnel) . Évalué à 3. Dernière modification le 24 octobre 2012 à 12:57.
http://www.samba.org/samba/docs/using_samba/ch08.html
==> wide links = yes
Pour voir s'il change sa façon de rendre les liens visibles par le client sous Windows, ce qui doit être le cas vu que ça permet normalement de sortir de la zone exportée (ie. attention, c'est un trou de sécurité).
Voir aussi la sémantique qui est derrière - si le lien est ouvert en écriture, est-ce que ça réécrit à l'endroit du lien ou à l'endroit du fichier d'origine ?
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN
[^] # Re: A voir...
Posté par bluelambda . Évalué à 2.
J'ai déjà tenté cette solution, mais ça donne simplement des liens cassés sur les montages CIFS. C'est bizarre comme comportement d'ailleurs…
Merci quand même!
[^] # Re: A voir...
Posté par droopy191 . Évalué à 1.
et un peu plus …
j'utilise ces 3 options dans le smb.conf pour les liens
follow symlinks = yes
wide links = yes
unix extensions = no
Par contre je n'ai que des clients windows.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.