\documentclass{article}
\title{SAMBA}
\author{Julien Danjou\\jdanjou@linuxenrezo.org}
\date{}
\begin{document}
\maketitle

	SAMBA est un serveur gratuit (license publique GNU - GPL) de type LAN Manager. Il est compos\'e de plusieurs programmes qui permettent de partager et d'utiliser des ressources partag\'ees via SMB (Server Message Block) et NetBIOS (Network Basic Input/Output System).\\
	
        Samba peut acc\'eder aux diff\'erents services offerts par le protocole NetBIOS:\\
		
	Printer: Partage d'imprimante(s)\\
        	
	Share: Partage de r\'epertoire(s)\\
        	
	Popup: Envoi/r\'eception de message sur le r\'eseau.\\
        
	Il sait aussi g\'erer diff\'erents type d'indentification (workgroup, domain, login, pas de login).\\ 
        
	Samba est donc une excellente alternative \`a NFS, car il est plus fiable et permet de partager les ressources avec des PC fonctionnant sous Windows.\\
        
	Bref, Samba permet d'\'emuler un serveur Windows NT en parlant le langage Microsoft...
        
	D'un point de vue technique, SAMBA est une impl\'ementation de LAN Manager pour le protocole TCP/IP. Il a \'et\'e mis au point par Microsoft, Intel et IBM. Il fonctionne sur le principe d'\'echange client-serveur, c'est \`a dire que si le client envoie une demande, le serveur enverra une r\'eponse; mais une machine peut \^etre \`a la fois client et serveur.  J'utilise ici la derni\`ere version de SAMBA, donc v\'erifiez si vous l'avez en allant faire un tour sur http://www.samba.org.\\
        
\section{Le fichier /etc/smb.conf}

        C'est dans ce fichier que tout se joue: il contient toute la configuration de SAMBA. Tout d'abord nous allons voir comment \'ecrire ce fichier, mais je vous conseille auparavant de garder une copie de votre smb.conf actuelle, on ne sait jamais...\\
        
	Ce n'est pas la pein de recopier ce qui est apr\`es les \# ! \\

        \#On commence\\

        \[global\]\\

        \#nom de votre groupe de travail\\

        workgroup = Binaire\\

        \#description du serveur\\

        server string = Linux Samba Server\\

        \#Cette partie est importante, car elle d\'efinit la s\'ecurit\'e de notre syt\`eme vous devez\\

        \#entrez les adresse IP de ceux qui sont autoris\'e \`a acc\'eder au donn\'ees de ce serveur.\\

        \#Ici on met 127. pour que vous puissiez vous voir sans passez par le r\'eseau\\

        \#(interface loopback) et 192.168.0 pour tout ceux du r\'eseau dont les adresses IP\\

        \#sont 192.168.0.x. Surtout indiquez les adresses le plus pr\'ecisement possible\\

        \#(ex: preferez 192.168.0 à 192.168.) et ne sautez pas cette étape, sinon n'importe qui\\

        \#de l'Internet pourra allez fouillez dans vos fichiers !!\\

        hosts allow = 192.168.0. 127.\\
        
        \# D\'ecommentez cela si vous voulez un compte guest, vous devez ajoutez ceci \`a /etc/passwd\\

        \# sinon nobody est utilis\'e;\\
	
	 ;guest account = pcguest\\
       
        \# Samba utilise un fichier de log par machine qui se connecte\\

        log file = /var/log/samba/log.\%m\\
        
        \# Taille maximum des logs (Ko)\\

        max log size = 50\\
        
        \# Niveau de s\'ecurit\'e. Voir plus loin\\

        security = share\\
        
        \# Utilisez les mot de passe du serveur , avec security = server\\

        ; password server = <NT-Server-Name>\\
        
        \# Password Level autorise l'utilisation de \_n\_ caract\`eres pour le mot de passe\\

        \# toutes les combinaisons de majuscules/miniscules\\

        ; password level = 8\\

        ; username level = 8\\
        
        \# Encryption des mots de passe\\

        \# Lisez ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.\\

        \# Ne pas utilisez ces options sans les avoirs lus\\

        ; encrypt passwords = yes\\

        ; smb passwd file = /etc/smbpasswd\\
        
        \# Ce qui suit est n\'ecessaire pour autoriser le changement de mot de passe depuis Windows\\

        \# pour le systeme Linux.\\

        \# NOTE: Utilisez ceci avec l'encryption des passwords et le fichier de pass ci dessus.\\

        \# NOTE2: Vous n'avez pas besoin de \c\ ca pour autoriser les clients à changer seulement\\

        \# le mot de passez crypt\'e SMB. Ils autorisent le mot de passe Unix\\

        \# \`a rester synchroniser avec celui de SMB\\

        ; unix password sync = Yes\\

        ; passwd program = /usr/bin/passwd \%u\\

        ; passwd chat = *New*UNIX*password* \%n *ReType*new*UNIX*password* \%n\\

        *passwd:*all*authentication*tokens*updated*successfully*\\
        
        \# Si vous voulez utilisez des noms d'utilisateurs diff\'erents de ceux de Linux\\

        ; username map = /etc/smbusers\\
        
        \# Utilisez un fichier de configuration par machine\\

        \# Le \%m sera remplacé par le nom netbios\\

        \# de la machine se connectant.\\

        ; include = /etc/smb.conf.\%m\\
        
        \# Meilleur performance\\

        socket options = TCP\_NODELAY\\
        
        \# Configure Samba pour utilisez plusieurs interfaces\\

        \# Si vous avez plusieurs interfaces réseaux, entrez les ici\\

        ; interfaces = 192.168.12.2/24 192.168.13.2/24\\
        
        \# Si vous voulez que le serveur soit le maitre du r\'eseau\\

        ; local master = no\\
        
        \# Utilisez ceci si une de vos machines Windows NT controle les domaines.\\

        ; domain controller = <NT-Domain-Controller-SMBName>\\
        
        \# Si vous voulez que SAMBA soit un domain logon pour les machines Windows\\

        ; domain logons = yes\\
        
        \# Si vous avez activ\'e les domain logon, choisissez si vous voulez un script\\

        par utilisateurs ou par machine.\\

        \# Exécutez un logon batch par machine\\

        ; logon script = \%m.bat\\

        \# Exécutez un logon batch par utilisateur\\

        ; logon script = \%U.bat\\
        
        \# Ou mettre les fichiers de profiles pour les machines Windows ?\\

        \# \%L est le nom de ce serveur, \%U est le nom de l'utilisateur\\

        \# You must uncomment the [Profiles] share below\\

        ; logon path = \%L Profiles\%U\\
        
        \# All NetBIOS names must be resolved to IP Addresses\\

        \# 'Name Resolve Order' allows the named resolution mechanism to be specified\\

        \# the default order is host lmhosts wins bcast. host means use the unix\\

        \# system gethostbyname() function call that will use either /etc/hosts OR\\

        \# DNS or NIS depending on the settings of /etc/host.config, /etc/nsswitch.conf\\

        \# and the /etc/resolv.conf file. host therefore is system configuration\\

        \# dependant. This parameter is most often of use to prevent DNS lookups\\

        \# in order to resolve NetBIOS names to IP Addresses. Use with care!\\

        \# The example below excludes use of name resolution for machines that are NOT\\

        \# on the local network segment\\

        \# - OR - are not deliberately to be known via lmhosts or via WINS.\\

        ; name resolve order = wins lmhosts bcast\\
        
        \# Windows Internet Name Serving Support\\

        \# WINS Support - Dire à NMBD de Samba d'activé son WINS Server\\

        ; wins support = yes\\
       
        \# WINS Server - Dire à NMBD de Samba d'\^etre un WINS Client\\

        \# Note: Samba peut être un WINS Server ou un WINS Client, mais pas les deux\\

        ; wins server = w.x.y.z\\
        
        \# WINS Proxy - Tells Samba to answer name resolution queries on\\

        \# behalf of a non WINS capable client, for this to work there must be\\

        \# at least one WINS Server on the network. The default is NO.\\

        ; wins proxy = yes\\
       
       \# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names\\

        \# via DNS nslookups. The built-in default for versions 1.9.17 is yes,\\

        \# this has been changed in version 1.9.18 to no.\\

        dns proxy = no\\
        
        \# Case Preservation can be handy - system default is \_no\_\\

        \# NOTE: These can be set on a per share basis\\

        ; preserve case = no\\

        ; short preserve case = no\\

        \# Default case is normally upper case for all DOS files\\

        ; default case = lower\\

        \# Be very careful with case sensitivity - it can break things!\\

        ; case sensitive = no\\
        
        \#================ Share Definitions ==============\\

        \#Ici on met tout ce qu'on veut partager.\\

        \[jeux\]\\

        path = /mnt/disk/d\\

        writable = no\\

        browseable = yes\\

        public = yes\\
        
        \[sites web\]\\

        path = /mnt/disk/c/Julien/Sites Web\\

        writable = no\\

        browseable = yes\\

        public = yes\\
        
        \[program\]\\

        path = /mnt/disk/c/Program Files\\

        writable = no\\

        browseable = yes\\

        public = yes\\
        
        \[fichiers\]\\

        path = /mnt/disk/c/Julien/Fichiers re\c\ cus\\

        writable = yes\\

        browseable = yes\\

        public = yes\\
        
        \[video\]\\

        path = /mnt/disk/d/Video\\

        writable = no\\

        browseable = yes\\

        public = yes\\
        
        \[cd-rom\]\\

        path = /mnt/cdrom\\

        browseable = yes\\\

        writable = no\\

        public = yes\\
        
	La derni\`ere partie contient tous les r\'epertoires partag\'es, dont le nom est entre crochets.\\ 
        
	A propos de l'option Security (s\'ecurit\'e): elle accepte plusieurs valeurs importantes:\\
        
	share: les ressources sont partag\'ees \`a n'importe qui sur le r\'eseau\\
        
	user: les ressources sont partag\'ees pour chaque utilisateurs: ce qui signifie que chaque personne voulant acc\'eder aux r\'epertoires partag\'ees devra avoir un compte utilisateur sur le serveur SAMBA, et devra entrez son mot de passe \`a chaque connection.\\ 

	server: m\^eme principe que pour user, mais la v\'erification se fait sur le serveur indiqu\'e dans password server = xxx o\`u xxx est le nom du serveur.\\

	domain: Lorsqu'un utilisateur se connecte sur un serveur, le serveur envoie le nom d'utilisateur et le mot de passe dans le domaine sp\'ecifi\'e pour authentification. Tous les contr\^oleurs de domaine peuvent traiter les demandes d'ouverture de session des comptes d'utilisateur de leur domaine: le premier serveur qui r\'epond validera ou refusera la connexion.\\ 
        
	La ressource IPC\$ est spécial: elle permet aux différents processus du client et du serveur ce communiquer; elle est rendu invisible pour les utilisateurs par la présence du \$.\\ 
        
	Pour connaitre tout les param\`etres de smb.conf, je vous conseille vivement de lire le manuel de smb.conf (tapez man smb.conf dans la console)\\
	
        \textbf{Scripts d'ouverture de session:}
	
        Ce sont des scripts ou des programmes \'ex\'ecutables qui sont lanc\'es lorsqu'un utilisateur ouvre une session. Ils permettent de modifier l'environnement de travail de l'utilisateur en d\'emarrant des applications ou en \'etablissant des connexions r\'eseaux.\\ 
        
	Pour cela il faut configurer dans /etc/smb.conf les options suivantes:\\ 

        \[global\]\\ 

        logons = yes \\

        Script à utiliser - \%U = nom de l'utilisateur\\ 

        logon script = \%U.at \\
        
        \[netlogon\] \\

        path = /home/netlogon\\ 

        case sensitive = no \\
        \# Il est important d'interdire l'\'ecriture pour des questions de s\'ecurit\'es\\. 

        writable = no \\

        \#On ne veut pas qu'il soit visible sur le r\'eseau\\ 
        browseable = no \\

        guest ok = yes\\ 

        locking = no \\

\end{document}