2.4.5 Un autre serveur simple en mode user (le même que le précédent (sauf le mode))

Devoir ressaisir son mot de passe alors qu'on l'a déjà fourni au login est pénible.
Il suffit de passer en mode security = userdans /etc/samba/smb.conf pour régler ce problème:

#========= Global Settings =========
[global]

   workgroup = MaMaison
   netbios name = LeJoliServeur

   hosts allow = 192.168.52. 127.

   security = user

   client code page = 850
   character set = ISO8859-1
      
#======== Share Definitions ========
[public]
   comment = Dossier public
   path = /home/samba/public
   browseable = yes
   public = yes
   writable = yes
      
[homes]
   comment = Home Directories
   browseable = no
   writable = yes
      
[profs]
   comment = Ressources profs
   path = /home/samba/profs
   browseable = yes
   ;public = no
   writable = yes
   valid users = @professeurs
      
[instructions]
   comment = Ressources et instructions à disposition des élèves
   path = /home/samba/ressources
   browseable = yes
   ;public = yes
   writable = no
   write list = @professeurs

 

Créer de nouveaux utilisateurs au cas où les précédents auraient eu des .PWL créés (et constater ce qui change lors de l'accès aux partages).

[root@DeepGlue steph]# useradd bonpoil -g professeurs
[root@DeepGlue steph]# passwd bonpoil
Changing password for user bonpoil.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@DeepGlue steph]# smbpasswd -a bonpoil
New SMB password:
Retype new SMB password:
Added user bonpoil.
[root@DeepGlue steph]#

[root@DeepGlue steph]# useradd tata -g eleves
[root@DeepGlue steph]# passwd tata
Changing password for user tata.
New UNIX password:
BAD PASSWORD: it is too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@DeepGlue steph]# smbpasswd -a tata
New SMB password:
Retype new SMB password:
Added user tata.
[root@DeepGlue steph]#

 

Utiliser la commande testparm qui lit le fichier smb.conf et permet de vérifier qu'il n'y a pas d'erreur de syntaxe.

Et on redémarre le serveur:
[root@DeepGlue steph]# samba restart
Shutting down SMB services:                                     [  OK  ]
Shutting down NMB services:                                     [  OK  ]
Starting SMB services:                                          [  OK  ]
Starting NMB services:                                          [  OK  ]
[root@DeepGlue steph]#

 

Après la saisie du couple utilisateur/mot de passe au login, plus aucun mot de passe n'est demandé.
C'est le couple saisi au login qui est utilisé pour les autorisations qui suivent.

Ainsi, bonpoil n'a plus à saisir de mot de passe pour accéder aux ressources ([bonpoil], [profs], [public], [instructions]) et parvient à y créer des fichiers et dossiers.

De même, tata n'a pas de mot de passe à fournir pour accéder aux ressources ([tata], [public], [instructions]), mais il ne peut écrire que dans \\LeJoliServeur\tataet \\LeJoliServeur\public.
Pour \\LeJoliServeur\instructions, il se voit opposer un "Accès refusé" à toute tentative d'écriture.

Pour le partage \\LeJoliServeur\profs, il se voit demander un mot de passe qui ne peut pas convenir et se solde toujours par "Mot de passe incorrect. Essayer de nouveau".
(avec un Wnt,W2k ou Wxp il se verrait proposer une fenêtre avec nom d'utilisateur et mot de passe).

 

Remarque:
Les combinaisons writable = yes et valid users = @professeurs d'une part
et writable = no et write list = @professeurs d'autre part ont sensiblement les mêmes effets, mais il serait possible d'avoir:

[partage]
   comment = Ressources fournies par martin à destination des professeurs
   path = /home/samba/partage
   browseable = yes
   writable = no
   write list = martin
   valid users = @professeurs

Seuls les professeurs y accéderaient et parmi eux, seul martinpourrait y écrire.

 

Remarque:
En mode security = user, un utilisateur inconnu de samba se voit opposer une demande de mot de passe pour une ressource IPC$.
Il n'est pas possible d'y fournir une bonne réponse.
L'utilisateur doit donc dans ce mode être déclaré dans /etc/samba/smbpasswd pour accéder aux ressources du serveur.
Pour permettre à un utilisateur non déclaré d'accéder aux partages déclarés publics (public = yes ou guest ok = yes), il faut déclarer un utilisateur invité de la façon suivante:
guest account = nobody
map to guest = bad user

Un utilisateur invité aura les droits de l'utilisateur nobody dont les droits sont extrêmement réduits.


Remarque sur le partage [public]: Problèmes de droits:
En mode security=share, tous les fichiers et dossiers créés dans le dossier [public](que ce soit par un utilisateur déclaré dans smbpasswd ou non) ont pour propriétaire nobody et pour groupe propriétaire nogroup.
Dans ces conditions, chaque utilisateur peut supprimer les fichiers et dossiers créés par son voisin.

En mode security=user par contre, un fichier créé par toto dans ce partage aur pour propriétairetoto et pour groupe propriétaire eleves (le groupe principal de toto).

Un fichier créé par toto dans \\LeJoliServeur\public pourra être supprimé par l'utilisateur martin, mais l'utilisateur martin ne pourra pas le modifier (ou alors il faudra l'enregistrer sous un autre nom).

Ci-contre, la modification est refusée avec un message qui ne traduit pas clairement la situation.
En revanche, la suppression du fichier n'a posé aucun problème.


En effet:
Tous les utilisateurs ont les droits rwx (au sens Linux) sur le dossier /home/samba/public, si bien qu'ils peuvent en lister le contenu, y créer/supprimer les fichiers/dossiers, et entrer dans le dossier.
En revanche, les droits par défaut sur les fichiers créés par les utilisateurs dans /home/samba/public sont rwxr--r--
Le fichier n'est qu'en "lecture seule" (lecture sans modification) pour les utilisateurs autres que celui qui l'a créé.

Une astuce pour que les fichiers créés dans le partage[public] (ouvert à tous) par un utilisateur bonpoil ne soient supprimables que par bonpoil:
Il suffit que bonpoil crée un dossier dans le partage [public].
Ce dossier aura pour droits rwxr-xr-x si bien que lui seul pourra y créer/modifier/supprimer des fichiers sans pour autant en interdire l'accès en lecture seule (vraiment) aux autres utilisateurs.
(pour les dossiers créés les droits par défaut sont rwxr-xr-x alors que pour les fichiers c'est rwxr--r--

Cette astuce pose un problème:
Si toto écrit une lettre d'injures à propos de son professeur bonpoil, seul toto peut supprimer le fichier.
Il peut être intéressant d'autoriser les membres du groupe professeurs à administrer le partage [public] (c'est-à-dire qu'ils ont tous les droits (rwx) sur le contenu de ce partage).
Pour cela, ajouter admin users = @professeurs dans la partie partage [public]du fichier smb.conf.
Si vous voulez en plus autoriser un utilisateur particulier duduche à administrer le partage:
admin users = @professeurs,duduche

 

Remarque: Forcer les droits par défaut:
Il est possible de modifier les droits par défaut sur les fichiers créés par un utilisateur au niveau de Linux, à l'aide de la commande umask
(voir les pages liées: http://yannick.plassiard.free.fr/linux/combase-user.htm
ou http://ourworld.compuserve.com/homepages/jp_perroud/memo.htm)

Il est préférable de le faire au niveau de samba pour un accès depuis un client window$:
Voir force mask, user, group,... dans le paragraphe 2.4.7.8 D'autres paramètres...

 

Ressources:
Le fichier smb.conf (avec les fins de lignes UNIX): smb.conf.version7 (qu'il faudra renommer en smb.conf).

Sommaire - Précédent - Suivant