Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Samba perd les accents

9 réponses
Avatar
Olivier V
Bonjour,

Malgré diverses questions dans les archives, je n'ai trouvé aucune réponse
claire à ce problème :

J'ai un ordinateur fixe sous mandrake 10.1) dont certains dossiers sont
partagés avec samba dans un modeste réseau constitué de cet ordinateur et
d'un portable.
Or le portable (sous kubuntu 5.04) ne "voit" aucun fichier avec ses
accents : ils sont remplacés par des _.

Que faire ?

J'ai posté ci-dessous le smb.conf du poste fixe.

Merci.

Olivier V

# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
# here. Samba has a huge number of configurable options (perhaps too
# many!) most of which are not shown in this example
#
# Any line which starts with a ; (semi-colon) or a # (hash)
# is a comment and is ignored. In this example we will use a #
# for commentry and a ; for parts of the config file that you
# may wish to enable
#
# NOTE: Whenever you modify this file you should run the command "testparm"
# to check that you have not made any basic syntactic errors.
#
#======================= Global Settings
=====================================
[global]
log file = /var/log/samba/log.%m
restrict anonymous = no
ldap ssl = No
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
domain master = no
map to guest = Bad User
encrypt passwords = yes
printer admin = @adm
dns proxy = no
max protocol = NT
server string = Samba Server %v
printing = cups
workgroup = reseau
server signing = Auto
printcap name = cups
security = share
preferred master = no
max log size = 50

[printers]
browseable = no
printable = yes
print command = lpr-cups -P %p -o raw %s -r # using client side printer
drivers.
path = /var/spool/samba
guest ok = yes
create mask = 0700
comment = All Printers
use client driver = yes

[print$]
path = /var/lib/samba/printers
write list = @adm root
guest ok = yes
inherit permissions = yes
# Settings suitable for Winbind:
# write list = @"Domain Admins" root
# force group = +@"Domain Admins"

# A useful application of samba is to make a PDF-generation service
# To streamline this, install windows postscript drivers (preferably colour)
# on the samba server, so that clients can automatically install them.
# Note that this only works if 'printing' is *not* set to 'cups'

[pdf-gen]
path = /var/tmp
printable = Yes
comment = PDF Generator (only valid users)
printing = bsd
#print command = /usr/share/samba/scripts/print-pdf file path win_path
recipient IP &
print command = /usr/share/samba/scripts/print-pdf "%s" "%H" "//%L/%u" "%m"
"%I" "%J" &
lpq command = /bin/true

# A share allowing administrators to set ACLs on, or access for backup
purposes
# ll files (as root).
#[admin]
# path = /
# admin users = @"Domain Admins"
# valid users = @"Domain Admins"
# browseable = no
# writeable = yes

# This one is useful for people to share files
;[tmp]
; comment = Temporary file space
; path = /tmp
; read only = no
; public = yes

# A publicly accessible directory, but read only, except for people in
# the "staff" group
;[public]
; comment = Public Stuff
; path = /home/samba/public
; public = yes
; writable = no
; write list = @staff
# Audited directory through experimental VFS audit.so module:
# Uncomment next line.
# vfs object = /usr/lib/samba/vfs/audit.so

# Other examples.
#
# A private printer, usable only by Fred. Spool data will be placed in
Fred's
# home directory. Note that fred must have write access to the spool
directory,
# wherever it is.
;[fredsprn]
; comment = Fred's Printer
; valid users = fred
; path = /homes/fred
; printer = freds_printer
; public = no
; writable = no
; printable = yes

# A private directory, usable only by Fred. Note that Fred requires write
# access to the directory.
;[fredsdir]
; comment = Fred's Service
; path = /usr/somewhere/private
; valid users = fred
; public = no
; writable = yes
; printable = no

# a service which has a different directory for each machine that connects
# this allows you to tailor configurations to incoming machines. You could
# also use the %u option to tailor it by user name.
# The %m gets replaced with the machine name that is connecting.
;[pchome]
; comment = PC Directories
; path = /usr/pc/%m
; public = no
; writable = yes

# The following two entries demonstrate how to share a directory so that two
# users can place files there that will be owned by the specific users. In
this
# setup, the directory should be writable by both users and should have the
# sticky bit set on it to prevent abuse. Obviously this could be extended to
# as many users as required.
;[myshare]
; comment = Mary's and Fred's stuff
; path = /usr/somewhere/shared
; valid users = mary fred
; public = no
; writable = yes
; printable = no
; create mask = 0765


[home]
force create mode = 777
writeable = yes
create mode = 777
public = yes
path = /home/meloli
force directory mode = 777
directory mode = 777


[linux_mnt]
force create mode = 777
writeable = yes
create mode = 777
public = yes
path = /mnt
force directory mode = 777
directory mode = 777

9 réponses

Avatar
Vincent Ramos
Olivier V égrapsen en  :

Or le portable (sous kubuntu 5.04) ne "voit" aucun fichier avec ses
accents : ils sont remplacés par des _.
Que faire ?


Dans la partie [Global] de smb.conf, ajoutez
dos charset = 850
unix charset = utf-8
display charset = utf-8

(Si votre locale est en utf-8 ; adaptez, sinon).

Normalement, vous n'avez pas besoin de relancer Samba pour que les
modifications soient prises en compte.

Avatar
TiChou
Dans le message <news:42955881$0$7972$,
*Vincent Ramos* tapota sur f.c.o.l.configuration :

Normalement, vous n'avez pas besoin de relancer Samba pour que les
modifications soient prises en compte.


Précisons qu'il faut tout de même attendre un certain délai (10 minutes de
souvenir et d'après une vieille lecture de la doc). Sinon, envoyer un SIGHUP
permet d'accélérer les choses. :)

--
TiChou

Avatar
Olivier V
Vincent Ramos wrote:

Dans la partie [Global] de smb.conf, ajoutez
dos charset = 850
unix charset = utf-8
display charset = utf-8


J'ai essayé ça, relancé samba ... mais ça ne change rien

(Si votre locale est en utf-8 ; adaptez, sinon).


Je suppose donc que le problème est ici.
Mais comment connaître ma locale ?
J'ai :
[ user]# locale
LANG=fr_FR
LC_CTYPE=fr_FR
LC_NUMERIC=fr_FR
LC_TIME=fr_FR
LC_COLLATE=fr_FR
LC_MONETARY=fr_FR
LC_MESSAGES=fr_FR
LC_PAPER=fr_FR
LC_NAME=fr_FR
LC_ADDRESS=fr_FR
LC_TELEPHONE=fr_FR
LC_MEASUREMENT=fr_FR
LC_IDENTIFICATION=fr_FR
LC_ALL
Par ailleurs, utf-8 fonctionne-t-il correctement avec le symbole "euro", ...
sous kmail je vois en bas "iso-8859-15" : c'est moins bien que utf-8 ?

Normalement, vous n'avez pas besoin de relancer Samba pour que les
modifications soient prises en compte.


J'ai relancé quand même.

Merci.

Olivier V

Avatar
Vincent Ramos
Olivier V égrapsen en  :

Je suppose donc que le problème est ici.
Mais comment connaître ma locale ?
J'ai :
[ user]# locale
LANG=fr_FR
LC_CTYPE=fr_FR
LC_NUMERIC=fr_FR
LC_TIME=fr_FR
LC_COLLATE=fr_FR
LC_MONETARY=fr_FR
LC_MESSAGES=fr_FR
LC_PAPER=fr_FR
LC_NAME=fr_FR
LC_ADDRESS=fr_FR
LC_TELEPHONE=fr_FR
LC_MEASUREMENT=fr_FR
LC_IDENTIFICATION=fr_FR
LC_ALL
Par ailleurs, utf-8 fonctionne-t-il correctement avec le symbole
"euro", ... sous kmail je vois en bas "iso-8859-15" : c'est moins
bien que utf-8 ?


Le codage des caractères dans un courriel n'est pas forcément celui
qu'utilise votre système.

Votre locale ne me semble pas correcte -- je peux me tromper -- mais
il me semble qu'il faille une indication du jeu de caractères, ce qui
n'est pas le cas : il n'y a que la langue de précisé. Par exemple,
chez moi c'est « fr_FR.UTF-8 ».

Si c'est votre locale qui n'est pas correctement déclarée, cela peut
être la raison du dysfonctionnement de Samba.

Je ne sais pas trop comment on configure la locale sous Mandrake.
Google devrait vous renseigner. Je vous conseille UTF-8 (mais c'est
une opinion personnelle).

--
<http://fr.wikipedia.org/wiki/Utilisateur:Vincent_Ramos>

Avatar
Olivier V
Vincent Ramos wrote:

Votre locale ne me semble pas correcte -- je peux me tromper -- mais
il me semble qu'il faille une indication du jeu de caractères, ce qui
n'est pas le cas : il n'y a que la langue de précisé. Par exemple,
chez moi c'est « fr_FR.UTF-8 ».


Apparemment (source : google) fr_FR c'est de l'iso 8859-1 chez mandrake.

J'ai donc ajouté dans smb.conf :

dos charset = 850
unix charset = fr_FR.ISO-8859-1
display charset = fr_FR.ISO-8859-1

mais c'est pire : maintenant je vois les dossiers en bons caractères, mais
plus comme des dossiers : ils apparaissent comme des fichiers que la
machine ne sait pas ourvrir ?!

Par contre mon portable "client" est en utf-8.
il faut peut-être que les deux machines sous linux utilisent le même
codage ?

Je ne sais pas trop comment on configure la locale sous Mandrake.


Moi non plus

Google devrait vous renseigner.


J'ai cherché, mais a part les machins-drake qui ne permettent de choisir
rien d'autre que la langue, je n'ai rien trouvé ... je vais approfondir.

Comment fait-on pour les autres (votre ...) distrib ?
Le fichier de configuration et la commande sont surement génériques.

Je vous conseille UTF-8 (mais c'est
une opinion personnelle).


Je prends note.

Merci.

Olivier V

Avatar
Vincent Ramos
Olivier V égrapsen en  :

Apparemment (source : google) fr_FR c'est de l'iso 8859-1 chez
mandrake.
J'ai donc ajouté dans smb.conf :

dos charset = 850
unix charset = fr_FR.ISO-8859-1
display charset = fr_FR.ISO-8859-1

mais c'est pire : maintenant je vois les dossiers en bons
caractères, mais plus comme des dossiers : ils apparaissent comme
des fichiers que la machine ne sait pas ourvrir ?!


Gni ?

Par contre mon portable "client" est en utf-8.
il faut peut-être que les deux machines sous linux utilisent le même
codage ?


Là, oui, mais cela n'explique pas pourquoi les répertoires ne sont
plus considérés comme des dossiers. Peut-être ne faut-il pas écrire
« ISO-8859-1 » mais une graphie approchante.

Essayez avec
unix charset = ISO8859-1 (sans espace et sans fr_FR)
dos charset = 850

et commentez (avec un croisillon -- # -- devant) la ligne
display charset = fr_FR.ISO-8859-1.

Je ne vois cependant pas pourquoi une erreur dans la déclaration des
jeux de caractères pourrait « transformer » les répertoires en
fichiers.

Je ne sais pas trop comment on configure la locale sous Mandrake.
Moi non plus

Google devrait vous renseigner.
J'ai cherché, mais a part les machins-drake qui ne permettent de

choisir rien d'autre que la langue, je n'ai rien trouvé ... je vais
approfondir.
Comment fait-on pour les autres (votre ...) distrib ?


On modifie des fichiers à la main (/etc/locale.gen, dans lequel j'ai
fr_FR.UTF-8 UTF-8 ; /etc/environment, où j'ai
LANGUAGE="fr_FR:fr:en_GB:en"
LANG=fr_FR.UTF-8) ou on se sert d'un outil de configuration
(dpkg-reconfigure locales).

Le fichier de configuration et la commande sont surement génériques.


Pas là car dpkg est un gestionnaire propre à Debian et assimilées.

--
<http://fr.wikipedia.org/wiki/Utilisateur:Vincent_Ramos>


Avatar
Olivier V
Ca y est !

En mettant
unix charset = ISO-8859-15
dans smb.conf de la mandrake
et en passant la machine sous kubuntu en ISO-8859-15 (au lieu du UTF-8 par
défaut), tout fonctionne.

et commentez (avec un croisillon -- # -- devant) la ligne
display charset = fr_FR.ISO-8859-1.


A quoi sert donc cette ligne ? A rien ... (ce qui m'étonnerait) ?

ou on se sert d'un outil de configuration
(dpkg-reconfigure locales).


Impeccable.

Par contre, si je voulais tout passer en utf-8,
comment convertir des disques durs entiers de iso-8859-15 vers utf-8 ?

Merci.

Olivier V

Avatar
Vincent Ramos
Olivier V égrapsen en  :

Par contre, si je voulais tout passer en utf-8,
comment convertir des disques durs entiers de iso-8859-15 vers
utf-8 ?


Vous n'avez à convertir que
* les noms de fichiers / répertoires contenant des caractères
étendus ;
* l'éventuel contenu de fichiers en texte brut.

Pour ce dernier cas, il existe plusieurs utilitaires, dont recode
(apt-get install recode). Pour le premier, je pense qu'il existe une
manière simple, mais je ne la connais pas. Une recherche sur Google
me donne une telle page : <http://j3e.de/linux/convmv/man/>.

Avatar
Olivier V
Vincent Ramos wrote:

Vous n'avez à convertir que
* les noms de fichiers / répertoires contenant des caractères
étendus ;
* l'éventuel contenu de fichiers en texte brut.

Pour ce dernier cas, il existe plusieurs utilitaires, dont recode
(apt-get install recode). Pour le premier, je pense qu'il existe une
manière simple, mais je ne la connais pas. Une recherche sur Google
me donne une telle page : <http://j3e.de/linux/convmv/man/>.


Merci.

Olivier V