====== Samba (-lé-lé) ====== Version installée ----------------- $ net -V ou $ net --version Aide ---- # samba help # samba --help Usage: /usr/sbin/samba {start|stop|restart|status|condrestart} ===== Voisinage réseau ===== $ findsmb # findsmb smb4k LinNeighborhood Sous konqueror : smb:/ lan:/ (Nb : sous MDV 2007 findsmb s'appelle mainteantn findsmb3 $ findsmb3 sh: /usr/bin/nmblookup: No such file or directory => petit bug facile à corriger : $ sudo ln /usr/bin/nmblookup3 /usr/bin/nmblookup) $ smb4K (Samba browser pour KDE) Idem ci-dessus : dans MDV 2007 : "the following programs missing on your system: smbclient, smbspool" Même correction : $ sudo ln /usr/bin/smbclient3 /usr/bin/smbclient $ sudo ln /usr/bin/smbspool3 /usr/bin/smbspool $ LinNeighborhood Sous konqueror : smb:/ Sous konqueror : lan:/ (les "Workgroups" ne sont pas affichés) - Tester l'état du service samba -------------------------------- # service smb status smbd (pid 2114) is running... nmbd (pid 2124) is running... ou bien # samba status smbd (pid 7403 7393) est en cours d'exéution... nmbd (pid 7407) est en cours d'exécution... - Démarrer, redémarrer ---------------------- start, restart # service smb restart Shutting down SMB services: [ OK ] Shutting down NMB services: [ OK ] Starting SMB services: [ OK ] Starting NMB services: [ OK ] ou bien # samba start Se connecter à une disque Windows externe ----------------------------------------- $ smbclient //pc/partage smb: \> $ smbclient //pc/partage -U smb: \> Monter un disque Windows externe -------------------------------- "toto" est l'utilisateur Windows : En simple utilisateur : $ smbmount //nom-machine_ou-N°IP/nom_partage /mnt/disk $ smbmount //nom-machine_ou-N°IP/nom_partage /mnt/disk -o username=toto En root avec la commande mount : # mount -t smbfs //nom-machine_ou-N°IP/nom_partage /mnt/disk # mount -t smbfs -o username=toto //nom-machine_ou-N°IP/nom_partage /mnt/disk (sous MDV 2007 : # mount -t cifs -o username=toto //nom-machine_ou-N°IP/nom_partage /mnt/disk) Pour autoriser l'utilisateur (linux) "bibi" à accéder au montage : # mount -t smbfs -o username=toto,users,uid=bibi //nom-machine_ou-N°IP/nom_partage /mnt/disk ou si on préfère, dans fstab (ici avec le mot de passe en clair, beurk !) : //nom_machine/nom_partage /point/de/montage smbfs username=toto,password=le_mot_de_passe ou encore avec login et mot de passe dans un fichier accessible uniquement par root et contenant : username = toto password = le_mot_de_passe # mount -t smbfs -o credentials=/le/nom/de/ce/fichier //nom-machine_ou-N°IP/nom_partage /mnt/disk idem pour fstab : //nom_machine/nom_partage /point/de/montage smbfs -o credentials=/le/nom/de/ce/fichier - Partager un répertoire (c.a.d. pouvoir accéder, à partir d'un PC Windows, à un répertoire résidant le PC linux ) ------------------------------------------------------------------------------------------------------- Editer le fichier de configuration /etc/samba/smb.conf et ajouter le répertoire à partager selon les exemples donnés dans ce fichier (voir à la fin du fichier). Vérifier éventuellement s'il n'y a pas d'erreur dans le fichier smb.conf : # testparm Relancer samba pour prendre en compte les modifications # samba restart ou encore : # service smb restart Samba n'utilise pas les mots de passe du système. Il a son propre fichier de mots de passe (/etc/samba/smbpasswd) Entrer le nom d'utilisateur et son mot de passe (sera mémorisé crypté dans /etc/samba/smbpasswd) # smbpasswd -a NomUtilisateur et répondre aux questions (c'est à dire entrer 2 fois le mot de passe) Voir quels sont les utilisateurs pourvus d'un mot de passe : # cat /etc/samba/smbpasswd Vérifier que le fichier de mots de passe est bien en lecture/écriture _uniquement_ pour root : $ ls -al /etc/samba/smbpasswd -rw------- 1 root root 102 Jan 3 1996 /etc/samba/smbpasswd Si ce n'etait pas le cas, mettre les droits corrects : # chmod 600 /etc/samba/smbpasswd Il est inutile de relancer samba pour que les nouveaux mots de passe soient pris en compte. Se connecter à partir du PC windows. Erreur "incorrect password or unknown username" => vérifier que le mot de passe des utilisateurs potentiels a été entré, cf. smbpasswd ci-dessus. Sous W$ : "Attempt to connect to \\serveur_linux\Repertoire_partagé" "The network path \\serveur_linux\Repertoire_partagé could not be found" => vérifier que le firewall ne bloque pas la connexion. Par exemple, avec shorewall, rajouter dans /etc/shorewall/rules AllowSMB net fw et redémarrer shorewall (sudo shorewall restart) Le partage peut également être fait à partir de konqueror : pointer le fichier, click droit, propriétés, partage ; mais c'est finalement plus compliqué et moins précis dans les permissions que d'éditer le fichier smb.conf. Problème de différence de jeux de caractères entre Linux et Windows ------------------------------------------------------------------- Peut se régler dans /etc/samba/smb.conf Voir paragraphe "File Naming Options:" et "Enabling internationalization:" Exemple : dos charset = 1252 case sensitive = Yes unix charset = ISO8859-15 (à adapter suivant les systèmes utilisés) Documentation :http://us1.samba.org/samba/docs/man/Samba-HOWTO-Collection/unicode.html