Il s'agit du serveur Ubuntu 10.04 64 et samba 3.4.7.
J'ai un répertoire partagé /home/mit/share
et un autre /home/temp
que je relie au partage:
ln -s /home/temp /home/mit/share/temp
Mais sur Windows, après avoir utilisé Internet, je ne peux pas ouvrir S:/temp
, mais sous Linux, il est possible d'accéder à /home/mit/share/temp
comme prévu.
Cela fonctionne si je lie des répertoires à l'intérieur de /home/mit/share/temp
, donc je suppose que samba restreint de sauter avec un lien en dehors/au-dessus du répertoire partagé.
MODIFIER:
Voir aussi cette question intitulée buntu + dernière version de samba, les liens symboliques ne fonctionnent plus sur le partage monté dans Windows .
Il semble préférable de mettre unix extensions = no
dans la section globale et follow symlinks = yes
et wide links = yes
uniquement dans la section partages, où vous en avez vraiment besoin.
Le unix extension
L'indicateur doit vivre dans la section globale et non dans les sections d'actions individuelles. Mais pour des raisons de sécurité, il est préférable d'utiliser les autres options uniquement là où vous en avez besoin, et non globalement.
Modifier smb.conf
[global]
unix extensions = no
[share]
follow symlinks = yes
wide links = yes
Remarque: Si vous utilisez une version plus récente de samba, ce qui suit peut fonctionner pour vous à la place:
[global]
allow insecure wide links = yes
[share]
follow symlinks = yes
wide links = yes
documentation sur follow symlinks
et wide links
drapeaux: https://www.samba.org/samba/docs/using_samba/ch08.html#samba2-CHP-8-TABLE-1
Alternativement aux autres réponses, pour garder les extensions unix activées, il est possible d'utiliser:
[global]
allow insecure wide links = yes
[share]
follow symlinks = yes
wide links = yes
Salutations, j'ai essayé de mettre cela en configuration pour corriger les liens symboliques pour Windows pour ma configuration, mais je ne suis pas sûr si cela affectera le client Windows, sinon il suit les liens symboliques lorsque je me connecte à cette boîte.
[global]
unix extensions = no
Pour permettre aux clients Samba de suivre les liens symboliques en dehors du chemin partagé, tout ce dont vous avez besoin dans la configuration Samba est:
[global]
allow insecure wide links = yes
unix extensions = no
[myShare]
wide links = yes
(en plus des définitions de partage Samba elles-mêmes, bien sûr). C'est-théoriquement- suffisant pour les clients * nix.
NB: La directive "follow symlinks" n'est pas nécessaire car elle est par défaut "yes"
Quant aux clients Windows, 1 paramètre est encore manquant pour leur permettre de suivre ces liens. Faire cela :
courir :
fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1
redémarrer pour recharger les paramètres
NB: le même résultat peut être obtenu en éditant le registre Windows. Voir les liens ci-dessous
sources :
Vous devrez peut-être traiter plus que le fichier de configuration Samba si vous exécutez AppArmor.
Vous avez besoin des directives suivantes dans votre smb.conf
:
follow symlinks = yes
wide links = yes
unix extensions = no
# No need for "allow insecure wide links" unless you want "unix extensions = yes"
Mais, AppArmor bloque l'accès à certaines parties du système de fichiers selon sa propre sémantique d'ensemble de règles. Donc, si votre lien symbolique dans Samba pointait vers un emplacement qu'AppArmor bloquerait, Samba refuserait l'accès.
Sur mon système, Samba met à jour les profils AppArmor au démarrage/arrêt du service, afin que je puisse modifier un profil AppArmor, mais risquer que Samba ou un autre programme l'écrase. Au lieu de cela, j'ai décidé de créer un partage inaccessible dans Samba référençant l'emplacement qui contenait la cible du lien symbolique auquel je voulais accéder (toujours dans smb.conf
):
# The following is a hack for AppArmor to allow the path
[share1 for AppArmor] # Or whichever name you choose
browseable = no
path = /home # Point to directory or parent directory of the location to access
read only = yes
guest ok = no
valid users = none