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

Samba, problème de uid

8 réponses
Avatar
Francois Lafont
Bonjour à tous,

J'essaye de découvrir Samba mais ce n'est pas facile. Voici quelque
chose que je ne comprends pas. Je suis sous Ubuntu 10.04.

Dans le fichier /etc/samba/smbpasswd, l'utilisateur "francois" a l'uid
0, c'est-à-dire le même que root alors que le compte Unix "francois" a
pour uid 1000, pas 0. Avez-vous une explication ?

Voici plus de détails. Vous pourrez voir qu'après création de
l'utilisateur "francois", l'uid est à 0 dans le fichier smbpasswd ?

#--------------------------------------------

# smbd -V
Version 3.4.7

# testparm -s /etc/samba/smb.conf
Load smb config files from /etc/samba/smb.conf
rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)
Processing section "[PARTAGE]"
Processing section "[MONHOME]"
Loaded services file OK.
Server role: ROLE_STANDALONE
[global]
workgroup = MON-DOMAINE
netbios name = SAMBA-SRV
server string = ""
map to guest = Bad User
passdb backend = smbpasswd
guest account = francois
lanman auth = Yes
log level = 1
max log size = 10
wins support = Yes

[PARTAGE]
comment = Pour faire des tests
path = /resteDisque1/dossier
read only = No
guest ok = Yes

[MONHOME]
comment = Mon home
path = /home/francois
guest ok = Yes

# service smbd restart
smbd start/running, process 6638

# service nmbd restart
nmbd start/running, process 6650

# cat /etc/samba/smbpasswd # pas de résultat le fichier est vide

# pdbedit -L # pas de résultat, pas d'utilisateur samba pour l'instant

# smbpasswd -a francois # on crée l'utilisateur "francois"
New SMB password:
Retype new SMB password:
Added user francois.

# cat /etc/samba/smbpasswd # Mais cet utilisateur a uid == 0 !?!
francois:0:96E3B942381CBE5BAAD3B435B51404EE:BBB4013EC9D4E3D7A88CA89C2519DB11:[U
]:LCT-4D116896:

# pdbedit -L # pourtant Samba semble le voir avec uid == 1000 !?!
francois:1000:francois

# cat /etc/passwd | grep francois # 1000 est le vrai uid
francois:x:1000:1000:francois,,,:/home/francois:/bin/bash

#--------------------------------------------


Pourquoi diable y a-t-il uid == 0 dans le fichier smbpasswd ? D'autant
plus que dans la page de manuel concernant ce fichier je vois :

« uid : This is the UNIX uid. It must match the uid field for the same
user entry in the standard UNIX passwd file. If this does not match then
Samba will refuse to recognize this smbpasswd file entry as being valid
for a user. »



--
François Lafont

8 réponses

Avatar
Vincent Verdon
Bonjour,

Le 22/12/2010 04:10, Francois Lafont a écrit :
Bonjour à tous,

J'essaye de découvrir Samba mais ce n'est pas facile. Voici quelque
chose que je ne comprends pas. Je suis sous Ubuntu 10.04.

Dans le fichier /etc/samba/smbpasswd, l'utilisateur "francois" a l'uid
0, c'est-à-dire le même que root alors que le compte Unix "francois" a
pour uid 1000, pas 0. Avez-vous une explication ?

Voici plus de détails. Vous pourrez voir qu'après création de
l'utilisateur "francois", l'uid est à 0 dans le fichier smbpasswd ?




Francois ne serait-il pas associé à root dans le fichier
/etc/samba/users (encore que je ne crois pas que cela produise cet effet) ?
Sinon, je n'ai pas d'explication,je n'ai jamais vu ce comportement, mais
par contre il est possible de modifier ensuite l'uid à la main pour
qu'il coïncide avec l'uid réel de francois.

Cordialement, Vincent Verdon
Avatar
François Lafont
Le 22/12/2010 15:35, Vincent Verdon a écrit :

Francois ne serait-il pas associé à root dans le fichier
/etc/samba/users (encore que je ne crois pas que cela produise cet effet) ?



N'ayant plus mon PC à disposition (je suis en vacances), je ne peux pas
répondre à cette question, mais je regarderai à mon retour et posterai
la réponse.

Sinon, je n'ai pas d'explication,je n'ai jamais vu ce comportement, mais
par contre il est possible de modifier ensuite l'uid à la main pour
qu'il coïncide avec l'uid réel de francois.



En effet, mais c'est quand même bizarre. Au moins avec votre réponse, je
suis conforté dans l'idée que ce n'est pas normal (car au départ je me
suis dit que ça pouvait être une subtilité qui m'échappe : par exemple
le compte 'francois' a accès à sudo où je ne sais quoi).

Ce qui m'étonne dans tout ça, c'est le côté incohérent, c'est-à-dire que
'cat smbpasswd' et 'pdbedit -L' se contredisent. Si au moins toutes les
deux indiquaient le compte 'francois' avec un uid à 0, mais là c'est
incompréhensible.
Avatar
Hugues
Bonjour,

Ce cher Francois Lafont a posté :

[global]
passdb backend = smbpasswd



pour ma part, je n'utilise pas le backend smbpasswd, mais tdbsam. J'ai
lu, à divers endroits, que smbpasswd n'était pas un bon backend. je ne
sais plus où, ni pourquoi :-))
Avec tdbsam, je peux continuer à utiliser pdbedit et smbpasswd, mais je
n'ai pas de fichier /etc/samba/smbpasswd (lisible en clair).

Je n'ai pas rencontré de souci avec cette méthode (juste qu'il est
pénible d'avoir à synchroniser les mots de passe unix avec samba à la
première création, mais j'ai configuré PAM pour le faire via "passwd".)

Bref, ça ne répond pas à la question...

Et j'ai l'impression qu'il ya redondance entre ton tdbsam et ton
/etc/samba/smbpasswd, je me trompe ?
Ça fait un peu beaucoup de trucs bizarres, du coup :-)
Moi j'aime bien quand c'est simple :-)

--
Hugues Hiegel [http://www.hiegel.fr/~hugues/]
Avatar
Vincent Verdon
Bonjour,

Le 23/12/2010 11:31, Hugues a écrit :

Bonjour,

Ce cher Francois Lafont a posté :

[global]
passdb backend = smbpasswd



pour ma part, je n'utilise pas le backend smbpasswd, mais tdbsam. J'ai
lu, à divers endroits, que smbpasswd n'était pas un bon backend. je ne
sais plus où, ni pourquoi :-))



Je m'en sers avec plusieurs centaines de comptes, je n'ai pas de pb
particulier et je peux éditer à la main le fichier !
A priori, le pb est la vitesse d'accès.



--
Amicalement, Vincent Verdon
Avatar
François Lafont
Le 23/12/2010 11:31, Hugues a écrit :

Avec tdbsam, je peux continuer à utiliser pdbedit et smbpasswd, mais je
n'ai pas de fichier /etc/samba/smbpasswd (lisible en clair).



Je voulais utiliser le fichier smbpasswd dans un premier temps car je
suis pour l'instant en train d'apprendre Samba, alors je me disais que
stocker les comptes dans un simple fichier texte pour commencer ça
serait plus clair.

Je n'ai pas rencontré de souci avec cette méthode (juste qu'il est
pénible d'avoir à synchroniser les mots de passe unix avec samba à la
première création, mais j'ai configuré PAM pour le faire via "passwd".)



Jusqu'à présent, je faisais des tests avec 2 ou 3 comptes maxi. :-)

Et j'ai l'impression qu'il ya redondance entre ton tdbsam et ton
/etc/samba/smbpasswd, je me trompe ?



Je ne sais pas, je ne comprends pas ce que tu veux dire par redondance.
Pour moi, dans le fichier de configuration smb.conf, soit on a "passdb
backend = smbpasswd" soit on a "passdb backend = tdbsam" (je laisse LDAP
de côté pour l'instant :-)). Dans un cas, Samba stocke les comptes dans
le fichier texte /etc/samba/smbpasswd «en clair», dans l'autre dans le
fichier '/var/lib/samba/passdb.tdb'. Il faut faire son choix, mais une
fois que c'est fait, je ne vois pas pourquoi il y aurait redondance. Je
crois bien avoir lu que les commandes pdbedit et smbpasswd s'adaptent
ensuite automatiquement au mode de stockage choisi. Ceci étant, je suis
loin d'être un spécialiste. :-)


--
François Lafont
Avatar
Fabien LE LEZ
On Thu, 23 Dec 2010 11:31:12 +0100, Hugues :

juste qu'il est
pénible d'avoir à synchroniser les mots de passe unix avec samba à la
première création



Faut-il vraiment effectuer cette synchronisation ?
Chez moi (enfin, au bureau), une bonne partie des gens ne savent pas
utiliser Bash (et n'en n'ont pas l'utilité), et donc n'ont pas de mot
de passe Unix. Les autres ont soit des clés SSH, soit un mot de passe
Unix différent du mot de passe Samba.
Avatar
Hugues
Ce cher Fabien LE LEZ a posté :

On Thu, 23 Dec 2010 11:31:12 +0100, Hugues :

juste qu'il est
pénible d'avoir à synchroniser les mots de passe unix avec samba à la
première création



Faut-il vraiment effectuer cette synchronisation ?



Ce n'est pas une obligation. Moi, je trouve ça plus pratique pour la
gestion des accès : un système centralisé pour le mot de passe, et tout
en découle (accès jabber, ssh, ftp, samba, ..)
J'ai galéré pour faire fonctionner jabberd2 avec PAM, j'ai dû utiliser
LDAP pour ça... J'ai fini par passer à ejabberd, c'est bien plus
simple : une simple règle autorisant les personnes du groupe UNIX
"users" (ou "jabber-users" par exemple) à se connecter via jabber, et
c'est tout bon.
Pareil pour SSH, etc..

J'aime bien avoir une gestion centralisée des mots de passe, tant que
c'est possible. (Par exemple, je ne me suis pas penché sur la question
de mysql).


Le problème de samba, c'est qu'il ne gère pas vraiment les accès via
PAM. Il a sa propre base de mot de passes. Mais il m'est possible, via
PAM, de faire en sorte qu'une modification du mot de passe UNIx entraîne
une mise à jour du mot de passe samba, à l'identique.
Je pourrais faire pareil pour mysql, tiens... C'est une piste
intéressante, ça ! à creuser. :)


Chez moi (enfin, au bureau), une bonne partie des gens ne savent pas
utiliser Bash (et n'en n'ont pas l'utilité), et donc n'ont pas de mot
de passe Unix. Les autres ont soit des clés SSH, soit un mot de passe
Unix différent du mot de passe Samba.



Chacun s'organise comme il le souhaite, en fonction de ses besoins.. :-)

--
Hugues Hiegel [http://www.hiegel.fr/~hugues/]
Avatar
Francois Lafont
Bonjour,

Le 23/12/2010 11:00, François Lafont a écrit :
Le 22/12/2010 15:35, Vincent Verdon a écrit :

Francois ne serait-il pas associé à root dans le fichier
/etc/samba/users (encore que je ne crois pas que cela produise cet
effet) ?



N'ayant plus mon PC à disposition (je suis en vacances), je ne peux pas
répondre à cette question, mais je regarderai à mon retour et posterai
la réponse.



Pour information, je n'ai pas de fichier /etc/samba/users. Donc pour
l'instant aucune piste concernant mon problème.

Je me disais que, peut-être, en faisant des tests j'ai pu mettre la
pagaille dans les fichiers de stockage des comptes. Du coup, j'ai voulu
repartir sur de nouvelles bases en faisant un :

# apt-get update
# apt-get purge samba
# apt-get install samba

Je pensais que tous les fichiers de configuration allaient disparaître
en particulier ceux qui se trouvent dans /etc/samba, /var/lib/samba et
/var/run/samba. Mais pas du tout. Tout est resté en place. Est-ce normal
? Comment faire pour réinstaller un samba « sorti d'usine » ?



--
François Lafont