Problème samba et utilisateurs/groupes (droit d'accès)

Bonjour

Je suis en train de faire quelques partages via samba sur un ordinateur qui me sert de serveur. Sur ce serveur, j’ai créé 2 utilisateurs, et je l’ai ait chacun mis dans le groupe de l’un et de l’autre :

J’ai tapé ces commandes :

[code]useradd flamme -m /home/flamme -> utilisateur de base sur la machine (créé durant l’installation de debian)
useradd emilie -m /home/emilie

smbpasswd -a emilie
smbpasswd -a flamme[/code]

Puis j’ai tenté ces commandes ne voyant que cela ne fonctionnait pas pour les ajouter au groupe :

adduser emilie emilie adduser emilie flamme adduser flamme flamme adduser flamme emilie

Ensuite, j’ai modifié les droits d’accès sur le serveur :

J’ai pour objectif de partager les fichiers et dossier via samba.
J’aimerai les partagés en 770 de manière à ce que les utilisateurs du même groupe est les mêmes droits que le propriétaire. Et donc, il faudrai que quand un utilisateur créer un nouveau fichier, il se mette automatiquement en 770, non ?

Voici le fichier /etc/passwd

[quote]root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
Debian-exim:x:101:103::/var/spool/exim4:/bin/false
statd:x:102:65534::/var/lib/nfs:/bin/false
flamme:x:1000:1000:flamme,:/home/flamme:/bin/bash
sshd:x:103:65534::/var/run/sshd:/usr/sbin/nologin
messagebus:x:104:107::/var/run/dbus:/bin/false
user:x:1001:1001::/home/user:/bin/rbash
share:x:1002:1002::/home/share:/bin/rbash
emilie:x:1003:1003::/home/emilie:/bin/bash[/quote]

Mon fichier /et/group

[quote]root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:flamme,emilie
fax:x:21:
voice:x:22:
cdrom:x:24:flamme,emilie
floppy:x:25:flamme,emilie
tape:x:26:
sudo:x:27:
audio:x:29:flamme,emilie
dip:x:30:
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:flamme,emilie
sasl:x:45:
plugdev:x:46:flamme,emilie
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
libuuid:x:101:
crontab:x:102:
Debian-exim:x:103:
mlocate:x:104:
ssh:x:105:
utempter:x:106:
flamme:x:1000:emilie,flamme
messagebus:x:107:
sambashare:x:108:
user:x:1001:
share:x:1002:
emilie:x:1003:flamme,emilie[/quote]

Et enfin mon fichier /etc/samba/smb.conf

[quote][global]
workgroup = WORKGROUP
server string = %h server
; wins server = w.x.y.z
dns proxy = no
; name resolve order = lmhosts host wins bcast
; interfaces = 127.0.0.0/8 eth0
; bind interfaces only = yes
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d

security = user
encrypt passwords = true
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = Enter\snew\s\spassword:* %n\n Retype\snew\s\spassword:* %n\n password\supdated\ssuccessfully .
pam password change = yes

; domain logons = yes
; logon path = \%N\profiles%U
; logon drive = H:
; logon script = logon.cmd
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos “” %u
; add machine script = /usr/sbin/useradd -g machines -c “%u machine account” -d /var/lib/samba -s /bin/false %u
; add group script = /usr/sbin/addgroup --force-badname %g
; printing = bsd
; printcap name = /etc/printcap
; printing = cups
; printcap name = cups
; include = /home/samba/etc/smb.conf.%m
; message command = /bin/sh -c ‘/usr/bin/linpopup “%f” “%m” %s; rm %s’ &
; idmap uid = 10000-20000
; idmap gid = 10000-20000
; template shell = /bin/bash
; winbind enum groups = yes
; winbind enum users = yes
; usershare max shares = 100

[homes]
comment = Home Directories
browseable = no
read only = yes
valid users = %S

;[netlogon]
; comment = Network Logon Service
; path = /home/samba/netlogon
; guest ok = yes
; read only = yes
; share modes = no

;[profiles]
; comment = Users profiles
; path = /home/samba/profiles
; guest ok = no
; browseable = no
; create mask = 0600
; directory mask = 0700

[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700

[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no

; write list = root, @lpadmin

;[cdrom]
; comment = Samba server’s CD-ROM
; read only = yes
; locking = no
; path = /cdrom
; guest ok = yes

[SC101]
writeable = yes
comment = SC101
create mode = 770
browseable = yes
public = yes
path = /sc101
directory mode = 770

[DATA_SAVE]
writeable = yes
comment = Sauvegarde
create mode = 770
browseable = yes
public = yes
path = /data_save
directory mode = 770

[DATA]
writeable = yes
comment = DATA
create mode = 770
browseable = yes
public = yes
path = /data
directory mode = 770

[PICTURES]
writeable = yes
comment = Photos & Vidéos
create mode = 0770
browseable = yes
public = yes
path = /pictures
directory mode = 0770

[SCSERVER]
writeable = yes
comment = Movies
create mode = 770
browseable = yes
public = yes
path = /scserver
directory mode = 770

[USER]
writeable = yes
comment = Répertoire perso de user
create mode = 770
browseable = yes
public = yes
path = /home/user
directory mode = 770

[Flamme]
writeable = yes
comment = Répertoire perso de Flamme
create mode = 770
browseable = yes
public = yes
path = /home/flamme
directory mode = 770

[SHARE]
writeable = yes
comment = Partage
create mode = 770
browseable = yes
public = yes
path = /home/share
directory mode = 770
guest ok = yes
[/quote]

Sur les machines clients le partage monté avec flamme fonctionne, mais pas le partage monté avec emilie. Voici de quel manière je monte le partage :

mon fichier /etc/fstab :

[quote]## DEFAULT ##
proc /proc proc defaults 0 0
UUID=c948cda1-342f-4bfe-a8a1-7ad696ff5235 / ext4 errors=remount-ro 0 1
UUID=f125b27c-d566-4650-bda8-6c8a904e887f none swap sw 0 0
UUID=5ad6bdec-f944-461d-947a-e075527aff34 /home ext4 errors=remount-ro 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0

NETWORK

//192.168.1.253/data /media/partage/data smbfs credentials=/root/.smbcredentials 0 0
//192.168.1.253/data_save /media/partage/data_save smbfs credentials=/root/.smbcredentials 0 0
//192.168.1.253/pictures /media/partage/pictures smbfs credentials=/root/.smbcredentials 0 0
//192.168.1.253/scserver /media/partage/scserver smbfs credentials=/root/.smbcredentials 0 0
//192.168.1.253/share /media/partage/share smbfs credentials=/root/.smbcredentials 0 0
//192.168.1.253/sc101 /media/partage/sc101 smbfs credentials=/root/.smbcredentials 0 0[/quote]

et le fichier /root/.smbcredentials

[quote]username=emilie
password=*****[/quote]

Donc, voici ce que cela donne quand je créer des dossiers :

[quote]
drwxr-xr-x 2 emilie emilie 4096 mars 27 09:35 test1/ -> Créé avec l’utilisateur emilie en local
drwxr-x— 2 emilie emilie 4096 mars 27 09:35 test 2/ -> Créé avec l’utilisateur en partage samba[/quote]

Créé dans le dossier partagé pictures

Je remercie d’avance toute personne susceptible de pouvoir m’aider.

Flamme

Bon d’abord, le partage [homes] au début du smb.conf permet à chaque utilisateur d’accéder à son home sur le serveur. Donc tu n’as pas besoin de rajouter un partage pour chaque utilisateur. À moins de vouloir mettre des paramètres différents pour chaque utilisateur, dans ce cas commentes le partage [homes] dans ton smb.conf.
EDIT : Notes d’ailleurs que dans ton smb.conf, flamme a un partage, pas emilie !

Pour ta création de dossier, c’est normal, quand tu le créé via le partage samba il a les droits 770, comme indiqué dans les options de ton partage. Quand tu le créés localement, il prend les droits définis par umask, par défaut 755 pour un dossier (umask 022). Si tu veux que le user localement créé des dossiers 770, il faut mettre :

dans son ~/.profile.

Merci beaucoup de t’intéresser à mon cas kna.

Pour ce qui est des partages /home, c’est pas vraiment ce qui m’intéresse, donc j’ai commenté les homes comme tu me la dit.

Et bien justement, pourquoi ne prend t’il pas les droits 770 lorsque que je créer un répertoire quand je suis connecté sur le réseau ?

drwxr-xr-x 2 emilie emilie 4096 mars 27 09:35 test1/ -> Créé avec l'utilisateur emilie en local drwxr-x--- 2 emilie emilie 4096 mars 27 09:35 test 2/ -> Créé avec l'utilisateur en partage samba

Arf, j’avais mal vu.

Mais ce ne serait pas justement dû au fait que tu n’as pas de partage [emilie] et donc c’est le partage [homes] qui est utilisé (celui là n’a pas de directives pour les droits des fichiers) ?

Si le problème a lieu dans un autre partage, alors je ne voie pas…

Et bien justement le problème vient d’un autre partage, en faite tous !

Je viens de m’apercevoir que lorsque je commente ces lignes là :

[quote]#[homes]

comment = Home Directories

browseable = no[/quote]

j’ai droit un beau accès refusé lors du montage des disques réseaux :confused:

Une piste ?

up

up

up

Bonjour. je n’ai pas de solution au problème de connection sur le réseau. C’est peut-être les dièses (on peut enlever complétement la section [HOMES]). Sinon faites par étapes : d’abords testparm, puis smbclient, et enfin ecrire dans le fstab

Sur le test d’écriture Emilie :
test 1 (en direct): drwxr-xr-x, donc 755
test 2 (samba) : drwxr-x—, donc 750
et donc pas de 770 …

Les droits samba sont une “couche” supplémentaire qui vient se plaquer sur les droits de base linux, un filtre de plus. Ce qui s’applique est la résultante du plus restrictif de 755 croisé avec 770 -> 750 ! Si par exemple on partage /root en 777 avec samba, on n’aura pas plus de droits via samba qu’en tant qu’utilisateur direct sur la machine. Donc la solution a été donnée par kna.
kna (bis) : umask 002 dans son ~/.profile.

Si vous êtes dans un réseau disons “familial de confiance”, vous pouvez passer par une solution de simplicité :

sur le serveur :
Changer le groupe principal des utilisateurs

addgroup maison usermod -g maison flamme usermod -g maison emilie

sur les dossiers que les deux partagent:

chown -R :maison /le/dossier/commun chmod -r 770 /le/dossier/commun

sur les dossiers perso perso de flamme :

chown -R flamme:maison /le/dossier/de/flamme chmod -r 700 /le/dossier/de/flamme
Seul flamme à accès en lecture ecriture execution au dossier. La connection samba d’emilie echouera pour des questions de droits unix.

même principe sur les dossiers perso perso d’Emilie

Sur le poste qui est serveur, c’est déjà plus simple à gérer. Les dossiers créés le seront en 770 (utilisateur:maison). Si le propriétaire veut limiter les droits d’autres utilisateurs, il suffit qu’il passe le dossier en 750 ou 700.

Avec le système de adduser group “croisé”, si jean et pierre sont nouveaux utilisateurs, il faudra faire adduser jean, adduser pierre, et les n combinaisons de “jean appartient au group emilie flamme pierre jean”, “pierre à etc etc” … ou vous vous simplifiez la tache en les attachant au groupe “maison”.

Personnellement, j’ai laissé tombé le principe de x utilisateurs fois y machines sur un réseau domestique. Il y a un dossier “public”, partagé en samba (films, photos, travaux, dossiers ‘personnels’). ça se gère bien avec des mount bind dans fstab ou des ln.

Enfin, pensez à mettre des clauses valid users et hosts allow dans smb.conf.

Voilà si ça peut aider.

Je regarde ça le plus tôt possible. Je te remercie beaucoup et je vous tient au courant dans la semaine qui vient.