Lorsque vous servez des fichiers contenant des caractères spéciaux tels que "()?:" Dans le nom de fichier via Samba, les noms sont transformés dans un format méconnaissable. Par exemple, un fichier
my_file:_(important).txt
est affiché comme
M43J1E~0.TXT
Existe-t-il un moyen d'éviter ce comportement (sans renommer les fichiers, évidemment)? Je suppose que l'encodage des caractères n'est pas à blâmer car plusieurs caractères UTF-8 semblent bien fonctionner.
Réponses:
Windows n'autorise pas certains caractères dans les noms de fichiers qu'Unix autorise. Samba "modifie" les noms de fichiers pour les rendre conformes aux restrictions de Windows. Vous pouvez vérifier le fichier
/etc/smb.conf
ou/etc/samba/smb.conf
voir quels paramètres sont en place. Pour afficher ces paramètres ainsi que les valeurs par défaut, utilisez cette commande:Pour affiner cela un peu:
Consultez cette page pour plus d'informations. Voir également à mi-chemin de cette page (les mêmes informations que le lien précédent).
la source
J'utilise un dossier partagé sur OS-X et Windows. Certains fichiers ont le même problème, car ils se présentent comme suit: Ils utilisent des caractères dans le nom de fichier, non pris en charge par Windows.
Voir: http://support.microsoft.com/kb/177506
Il répertorie les caractères, non pris en charge par Windows dans les fichiers ou répertoires. Je suppose que Samba utilise la même liste de caractères lors de la liste des fichiers et des répertoires.
Un peu plus loin, ils ont écrit:
Mais j'ai personnellement pris la liste des caractères non autorisés comme référence pour informer certains clients ici;)
la source
Je possède un ordinateur portable Apple Macbook Pro avec OS X 10.11 64 bits "El Capitan" exécutant Samba 3 que j'ai installé via Macports .
Je possède également un ordinateur portable Dell Inspiron avec 64 bits GNU / Linux XUbuntu 16.04 "Xenial Xerus" exécutant Samba 3 que j'ai installé via APT.
Les deux machines ont des dossiers partagés en réseau et utilisent Samba pour communiquer sur mon WLAN (LAN sans fil).
Mes deux systèmes sont en portugais brésilien. Ainsi, j'utilise des caractères spéciaux tels que ç , á , ã , â , ô , é , ó et cetera.
Lorsque j'utilise mon ordinateur portable Linux pour accéder à mes partages OS X Samba, toutes les chaînes sont affichées correctement: des mots comme maçã , ônus et bênção sont affichés correctement. Les fichiers et dossiers avec des noms longs sont également affichés et leurs noms s'affichent correctement. Ainsi, le serveur Samba fonctionnant sous OS X est déjà correctement configuré ...
... mais les choses ne fonctionnaient pas dans l'autre sens: si j'utilisais l'application Finder sur OS X pour accéder à mes partages Linux Samba, tous les fichiers et dossiers contenant au moins un de ces caractères spéciaux n'étaient pas affichés (ils restaient invisibles pour moi), et les noms longs des fichiers et des dossiers ont été convertis en noms courts étranges. Il y a donc eu un problème avec le serveur Samba exécuté sur ma machine Linux.
=> Dans mon cas, ce qui a résolu ce problème, c'est l'ajout des lignes suivantes à la
[global]
section à l'intérieur dusmb.conf
fichier sur ma machine Linux:Après cela, j'ai ouvert une fenêtre de terminal shell et redémarré le serveur Linux Samba avec cette commande:
... qui peut être remplacée par cette autre commande (au cas où la commande ci-dessus ne fonctionnerait pas sur votre distribution Linux):
Après avoir redémarré le serveur Linux Samba, l'application Finder sur OS X a finalement montré correctement tous les fichiers et dossiers qui étaient précédemment masqués en raison de leurs noms ayant un ou plusieurs caractères spéciaux. Les noms mutilés («raccourcis») étaient également «démêlés».
Notes de bas de page :
smb.conf
fichier est/etc/samba/smb.conf
smb.conf
fichier stocké à l'emplacement standard/etc/samba/
: il existe plusieurs façons de modifier lesmb.conf
fichier. Par exemple, si vous n'utilisez pas un environnement de bureau (par exemple, votre système n'a qu'un terminal shell, pas de fenêtres), vous pouvez installer l' éditeur de texte Nano , en émettant une commande telle quesudo apt-get install nano -y
ousudo dnf -b -y install nano
ou autre chose (selon la distribution Linux que vous utilisez), puis exécutezsudo nano /etc/samba/smb.conf
. Si vous utilisez un environnement de bureau, vous pouvez installer un éditeur de texte graphique tel que GNOME Edit , en émettant une commande telle quesudo apt-get install gedit -y
ousudo dnf -b -y install gedit
ou quelque chose d'autre (selon la distribution Linux que vous utilisez), puis exécutezsudo gedit /etc/samba/smb.conf
.display charset
paramètre est obsolète.dos charset
paramètre ne prend pas en charge l'UTF-8
argument. Ainsi, il doit utiliser l'argument par défautCP850
.mangled names = no
indique au serveur Samba de ne pas raccourcir les noms longs des fichiers et des dossiers. Par conséquent, parce que le client Samba réplique simplement à l'utilisateur ce que le serveur Samba a fourni au client, une fois que le serveur est correctement configuré, le client n'affichera plus à l'utilisateur aucun nom abrégé.la source
à partir de la documentation de samba, vous pouvez les utiliser:
la source