Personaggi speciali nei nomi di file di Samba


18

Quando si forniscono file contenenti caratteri speciali come "() ?:" nel nome file tramite Samba, i nomi vengono trasformati in un formato irriconoscibile. Ad esempio, un file

my_file:_(important).txt

viene visualizzato come

M43J1E~0.TXT

C'è un modo per evitare questo comportamento (senza rinominare i file, ovviamente)? Suppongo che la codifica dei caratteri non sia da biasimare perché diversi caratteri UTF-8 sembrano funzionare bene.


Samba versione 2: 3.4.0-3ubuntu5.5 su Ubuntu 9.10
Matti

3
L'aggiunta di "mengled names = no" a smb.conf ha risolto questo problema (grazie, Dennis Williamson).
Matti,

Risposte:


10

Windows non consente alcuni caratteri nei nomi di file consentiti da Unix. Samba "manipola" i nomi dei file per renderli conformi alle restrizioni di Windows. Puoi controllare il file /etc/smb.confo /etc/samba/smb.confvedere quali impostazioni sono in atto. Per mostrare quelle impostazioni più i valori predefiniti, usare questo comando:

testparm -vs | less

Per restringere un po 'questo:

testparm -vs|grep "case\|mangl"

Vedi questa pagina per maggiori informazioni. Inoltre, vedi circa a metà di questa pagina (le stesse informazioni del link precedente).


9

Uso una cartella condivisa su OS-X e Windows. Alcuni file hanno lo stesso problema, perché rientrano nei seguenti: Usano caratteri nel nome file, non supportato da Windows.

Vedi: http://support.microsoft.com/kb/177506

Elenca i caratteri, non supportati da Windows in file o directory. Immagino che Samba usi lo stesso elenco di caratteri quando elenca file e directory.

A filename cannot contain any of the following characters:
\ / : * ? " < > |

Un po 'più in basso, hanno scritto:

I caratteri validi per la denominazione di file, cartelle o collegamenti includono qualsiasi combinazione di lettere (AZ) e numeri (0-9), oltre ai seguenti caratteri speciali:

^   Accent circumflex (caret)
&   Ampersand
'   Apostrophe (single quotation mark)
@   At sign
{   Brace left
}   Brace right
[   Bracket opening
]   Bracket closing
,   Comma
$   Dollar sign
=   Equal sign
!   Exclamation point
-   Hyphen
#   Number sign
(   Parenthesis opening
)   Parenthesis closing
%   Percent
.   Period
+   Plus
~   Tilde
_   Underscore

Ma, personalmente, ho preso la lista dei personaggi non ammessi come riferimento per il briefing di alcuni clienti qui;)


7
  • Possiedo un laptop Apple Macbook Pro con OS X 10.11 a 64 bit "El Capitan" con Samba 3 installato tramite Macports .

  • Possiedo anche un laptop Dell Inspiron con GNU / Linux a 64 bit XUbuntu 16.04 "Xenial Xerus" con Samba 3 che ho installato tramite APT.

Entrambe le macchine hanno cartelle condivise in rete e usano Samba per comunicare sulla mia WLAN (LAN wireless).

Entrambi i miei sistemi sono in portoghese brasiliano. Pertanto, utilizzo caratteri speciali come ç , á , ã , â , ô , é , ó et cetera.

Quando uso il mio computer portatile Linux per accedere alle mie azioni OS X Samba, tutte le stringhe vengono visualizzati correttamente: parole come maçã , onere e Bencao vengono visualizzati correttamente. Vengono visualizzati anche file e cartelle con nomi lunghi e i loro nomi vengono visualizzati correttamente. Pertanto, il server Samba in esecuzione su OS X è già configurato correttamente ...

... ma le cose non funzionavano al contrario: se avessi usato l'app Finder su OS X per accedere alle mie condivisioni Samba Linux, tutti i file e le cartelle con almeno uno di quei caratteri speciali non venivano mostrati (rimanevano invisibili a me) e i nomi lunghi di file e cartelle sono stati convertiti in strani nomi brevi. Quindi, c'era qualcosa di sbagliato nel server Samba in esecuzione sulla mia macchina Linux.

=> Nel mio caso, ciò che ha risolto questo problema è stato l'aggiunta delle seguenti righe alla [global]sezione all'interno del smb.conffile sulla mia macchina Linux:

mangled names = no
dos charset = CP850
unix charset = UTF-8

Successivamente, ho aperto una finestra del terminale shell e riavviato il server Samba Linux con questo comando:

sudo service smbd restart

... che può essere sostituito da questo altro comando (nel caso in cui il comando sopra non funzioni sulla tua distribuzione Linux):

sudo systemctl restart smbd.service

Dopo aver riavviato il server Samba di Linux, l'app Finder su OS X ha finalmente mostrato correttamente tutti i file e le cartelle che erano stati precedentemente nascosti a causa del loro nome con uno o più caratteri speciali. I nomi mutilati ("abbreviati") erano anche "non confusi".

Note a piè di pagina :

  1. Nei sistemi GNU / Linux, la posizione standard del smb.conffile è/etc/samba/smb.conf
  2. Supponendo che il tuo sistema Linux abbia il smb.conffile archiviato nella posizione standard /etc/samba/: ci sono diversi modi per modificare il smb.conffile. Ad esempio, se non stai utilizzando un ambiente desktop (ad esempio il tuo sistema ha solo un terminale shell, senza finestre) puoi installare l' editor di testo Nano , emettendo un comando come sudo apt-get install nano -yo sudo dnf -b -y install nanoo qualcos'altro (a seconda della distro Linux che stanno usando), quindi esegui sudo nano /etc/samba/smb.conf. Nel caso in cui si utilizzi un ambiente desktop, è possibile installare un editor di testo grafico come GNOME Edit , emettendo un comando come sudo apt-get install gedit -yo sudo dnf -b -y install gedito qualcos'altro (a seconda della distribuzione Linux in uso), quindi eseguire sudo gedit /etc/samba/smb.conf.
  3. In Samba 3+, il display charsetparametro è obsoleto.
  4. Il dos charsetparametro non supporta l' UTF-8argomento. Pertanto, deve utilizzare l'argomento predefinito CP850.
  5. mangled names = noindica al server Samba di non abbreviare i nomi lunghi di file e cartelle. Quindi, poiché il client Samba replica appena all'utente ciò che il server Samba ha fornito al client, una volta configurato correttamente il server, il client non mostrerà più all'utente alcun nome abbreviato.

4

dalla documentazione di samba puoi usare questi:

dos charset = ISO8859-1
unix charset = ISO8859-1
display charset = ISO8859-1

4
Questo e l'aggiunta di nomi alterati = no a [global] ha corretto my su nas4free
Christopher Chase,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.