Samba peut être exécuté au travers d'un démon (auquel cas il faudra activer un script au démarrage du serveur pour lancer ce démon) ou à chaque requêtte netbios. Dans ce cas, le fichier /etc/services devra contenire les lignes suivantes :
netbios-ns 137/tcp # NETBIOS Name Service netbios-ns 137/udp # NETBIOS Name Service netbios-dgm 138/tcp # NETBIOS Datagram Service netbios-dgm 138/udp # NETBIOS Datagram Service netbios-ssn 139/tcp # NETBIOS Session Service netbios-ssn 139/udp # NETBIOS Session Service
et le fichier /etc/inetd.conf :
FIXME
Si le serveur SAMBA ne doit pas être actif en permanance (il n'agit pas comme MASTER BROWSER du réseau), la méthode utilisant inetd marche très bien.
Samba se configure au travers d'un unique fichier, /etc/smb.conf. Ce fichier peut être édité tel quel, ou grâce au programme swat, via une interface Web. Pour cela, vérifier que le fichier /etc/services contient la ligne :
swat 901/tcp # XXX Samba Web Adminisration Tool
et que le fichier /etc/inetd.conf contient la ligne :
swat stream tcp nowait.400 root /usr/sbin/swat swat
Noter que tcpd n'est pas appellé, ce qui signifie que n'importe quel hôte aura le droit d'utiliser cet outil. Voir la section 9.1 pour plus de détails.
Une fois Samba démarré, deux démons tournent (smbd et nmbd) :
$ ps aux | grep "[sn]mbd" root 525 0.0 0.0 1800 0 ? SW 05:41 0:00 [nmbd] root 527 0.0 0.0 2436 0 ? SW 05:41 0:00 [smbd] $
Il ne reste plus qu'à taper l'adresse http://localhost:901 dans n'importe quel navigateur Web, et s'authentifier en tant que root.
; ; Parametres generaux. ; [global] ; ; Parametres supplementaires propres au serveur dont le nom NetBIOS est ; precise par ``%m''. Les subsitutions %u, %P %S ne fonctionnent pas. ; include = /etc/smb.conf.%m ; ; Systeme de gestion d'impression utilise. Choix possibles : ; "printing=BSD", "printing=AIX", "printing=LPRNG", "printing=PLP", ; "printing=SYSV", "printing="HPUX", "printing=QNX" ou "printing=SOFTQ". ; printing = bsd ; ; Charger automatiquement les imprimantes du système. ; printcap name = /etc/printcap load printers = yes ; ; Nom d'un utilisateur invite (qui doit exister sur le systeme). ; guest account = nobody ; ; Liste des utilisateurs interdits d'acces à Samba. ; invalid users = root ; ; Nom netbios du serveur samba (nom de reseau si rien n'est precise). ; netbios name = tarsier ; ; Ecouter seulement le reseau local. ; interfaces = 192.168.1.1/255.255.255.0 ; ; Adresses IP autorisees a contacter le serveur Samba. ; hosts allow = 192.168.1.1/255.255.255.0 ; ; Choix du mode de securite : ; security=user oblige chaque utilisateur a avoir un compte sur le serveur. ; security=share ne gere pas les utilisateurs et ne partage que des ; ressources identiques pour tout le monde. ; security = user ; ; Nom NetBIOS (ou nom de reseau si il figure dans le fichier /etc/lmhosts) ; du serveur SMB utilise pour l'authentification username/password via ce ; serveur. ; password server = %m ; ; Nombre de lettres a changer en majuscule/minuscule, si le mot de passe ; ne correspond pas. ; password level = 4 ; ; Le nom du groupe de travail dont ce serveur fait partie. ; workgroup = ChezWam ; ; Description du serveur, visible lorsque on affiche les details : ; %h : nom DNS du serveur ; %v : version de samba ; server string = %h server (Samba %v) ; On utilise encore le fichier de log de samba, et pas que celui ; de syslog syslog only = no ; Le minimum d'informations importantes dans le syslog, ; le reste étant toujours dans /var/log/smb(nmb)/ syslog = 0; ; ; Un fichier journal par machine. ; log file = /usr/local/samba/var/log.%m ; ; La taille maximum du fichier de log. ; max log size = 1000 ; ; Pour que samba reagisse plus vite. ; socket options = IPTOS_LOWDELAY TCP_NODELAY \ SO_SNDBUF=4096 SO_RCVBUF=4096 ; ; On utilise les mots de passe encryptes. Upgrade de Windows (95 ou NT) ; en perspective pour que cela fonctionne... ; encrypt passwords = yes ; ; Le serveur fait aussi serveur WINS, qui permet a deux reseaux utilisant ; des plages d'IP différentes de se voir mutuellement. ; wins support = yes ; ; Active samba comme serveur maitre du domaine. ; domain master = yes ; ; Active samba comme serveur maitre local. ; local master = yes ; ; Samba doit il etre prefere a tout autre serveur primaire, si il y en a ? ; preferred master = yes ; ; Niveau de l'OS (ici maitre du domaine car au dessus du serveur NT). ; ``local master'' doit etre mis a ``yes''. ; os level = 34 ; ; Samba doit il gerer la centralisation des connexions du domaine ? ; domain logons = yes ; ; Quel script doit etre lance lorsque un client se connecte ? %g correspond ; au nom du groupe primaire dont fait partie cet utilisateur. ; logon script = %g.bat ; ; Dans quel repertoire se trouvent les fichiers de demarrage ? %L est le nom ; netbios du serveur samba. ; logon path=\\%L\netlogon ; ; Ou faut-il stocker les profils itinerants des utilisateurs ? %U est le ; login de l'utilisateur. ; logon home=\\%L\%U\winprofile ; ; Dans que ordre on fait appel aux ressources pour trouver le nom ; d'une machine ? ; name resolve order = lmhosts host wins bcast ; ; Samba doit il faire proxy DNS ? ; dns proxy = no ; ; Faut-il respecter les noms de fichiers et leurs casse ? ; preserve case = yes short preserve case = yes ; ; Faut-il synchroniser les mots de passe windows et Unix ? ; unix password sync = yes ; ; Programme a utiliser pour la synchronisation des mots de passes ; passwd program = /usr/bin/passwd %u ; ; Fichier contenant les mots de passe cryptés. Utilise si ; ``encrypt passwords = yes'' est mis dans la section [global]. ; smb passwd file = /etc/smbpasswd ; ; Protocole de discution pour changer le mot de passe. ; passwd chat = *Enter\snew\sUNIX\spassword:* \ %n\n *Retype\snew\sUNIX\spassword:* %n\n . ; ; Faire office de serveur de temps. ; time server = yes ; ; Ou se trouve le netlogon, utilise lors de la connexion. ; [netlogon] path = /home/netlogon/%g public = no writeable = no browseable = no ; ; Le répertoire Home de chaque utilisateur ; [homes] ; ; Description. ; comment = Home Directories ; ; Parcourt du repertoire interdit. ; browseable = no read only = no create mask = 0700 directory mask = 0700 ; ; Partage du FTP. ; [ftp] path = /home/ftp/pub public = yes printable = no guest ok = yes ; ; Le répertoire temporaire ; [tmp] path = /tmp public = yes printable = no guest ok = yes writable = yes ; ; Un autre temporaire pour l'utilisateur mdecore. ; [bigtemp] path = /home/bigtemp public = yes printable = no guest ok = yes valid users = mdecore writable = yes
Les variables utilisées par Samba sont les suivantes :
Variable | Définition |
%a |
Architecture du client (Win95, WfWg, WinNT, Samba, ...) |
%I |
Adresse IP du client |
%m |
Nom NetBios du client |
%M |
Nom DNS du client |
%u |
Nom de l'utilisateur Unix courant |
%g |
Groupe primaire de l'utilisateur %u |
%H |
Répertoire d'accueil de l'utilisateur %u |
%P |
Racine du partage actuel |
%S |
Nom du partage actuel |
%h |
Nom DNS du serveur Samba |
%L |
Nom NetBios du serveur Samba |
%v |
Version de Samba |
%T |
Date et l'heure courantes |
Il ne reste plus qu'à positionner les scripts à exécuter lors de la connexion d'un utilisateur dont le répertoire d'accueil sera /home/netlogon/%u (où %u est remplacé par le nom de l'utilisateur). Ce script /home/netlogon/mdecore/mdecore.bat peut contenire :
net use P: \\tarsier\homes net use T: \\tarsier\tmp net time \\tarsier /SET /YES regedit /s \\tarsier\netlogon\mdecore.reg
et le fichier /home/netlogon/mdecore/mdecore.reg contient :
[HKEY_CURRENT_USER\Software\Microsoft\Windows \CurrentVersion\Explorer\User Shell Folders]
Ces scripts permettent à la connexion de monter automatiquement le répertoire d'accueil de l'utilisateur en P: et le répertoire temporaire sur T:. On règle également l'horloge système sur celle du serveur Samba. Ces fichiers doivent être édités sous Dos ou convertis en format Dos (problème de retour à la ligne) avec unix2dos ou recode lat1..ibmpc.