\documentclass{article}
\title{NIS}
\author{Julien Danjou\\jdanjou@linuxenrezo.org}
\date{}
\begin{document}
\maketitle

\section{Pr\'esentation de NIS}

        Ce service consiste \`a centraliser un certain nombre fichiers sur un serveur afin qu'ils soient disponibles sur l'ensemble des machines du m\^eme r\'eseau.\\ 

        Par exemple, on peut sur un r\'eseau comportant des machines Linux, centraliser la base des comptes et des mots de passe afin que les utilisateurs puissent \^etre reconnus sur l'ensemble des machines. L'administrateur du r\'eseau ne maintient plus qu'un seul fichier des utilisateurs. Cela n'emp\^eche pas de conserver des comptes utilisateur locaux.\\

\section{Architecture NIS}

        A l'int\'erieur d'un r\'eseau, il doit y avoir au moins une machine faisant office de serveur NIS. Vous pouvez avoir plusieurs serveurs NIS, chacun g\'erant plusieurs domaines NIS, ou bien vous pouvez avoir des serveurs NIS coop\'eratifs.\\ 
	
	Dans ce cas, l'un d'entre eux est dit serveur NIS ma\^\i tre, les autres \'etant serveurs NIS esclaves. Vous pouvez \'egalement m\'elanger les deux possibilit\'es.\\

        Les serveurs esclaves n'ont qu'une copie de la base de donn\'ees et la re\c\ coivent du serveur NIS ma\i\ itre lorsque des changements sont effectu\'es dans la base de donn\'ees.\\ 

	En fonction du nombre de machine et de la fiabilit\'e de votre r\'eseau, vous pouvez d\'ecider d'installer un ou plusieurs serveurs esclaves. Lorsqu'un serveur NIS tombe en panne ou bien s'il est trop long pour r\'epondre aux requ\^etes, un client NIS connect\'e à ce serveur va alors essayer d'en trouver un en \'etat de marche.\\ 
        
\section{Installation d'un serveur ma\^\i tre}

        Dans notre exemple, nous allons par exemple partager la base des comptes afin de permettre aux utilisateurs de pouvoir se connecter sur n'importe quelle machine du r\'eseau. On supposera que les packages NIS sont install\'es sur les machines. Le serveur ma\^\i tre d\'etiendra la base des comptes. Seuls les utilisateurs avec un UID=500 doivent \^etre export\'es. Garder les comptes syst\`emes locaux sur les machines de votre r\'eseau.

        Cr\'eer un r\'epertoire dans lequel vous allez mettre les fichiers passwd et shadow \`a exporter. Par exemple:\\ 

	mkdir /etc/nis\\
          
	Copier les fichier passwd, group, shadow et gshadow dans le r\'epertoire /etc/nis :\\

        cp /etc/passwd /etc/nis\\
          
	cp /etc/group /etc/nis\\

	cp /etc/shadow /etc/nis\\

        cp /etc/gshadow /etc/nis\\
        
	Supprimer les entr\'ees correspondantes aux utilisateurs \`a exporter dans vos fichiers passwd, group, shadow et gshadow originaux.\\

        Ne mettre que les entr\'ees correspondantes aux utilisateurs \`a exporter dans les fichiers passwd, group, shadow et gshadow contenus dans le r\'epertoire /etc/nis\\
          
	Modifier le fichier Makefile contenu dans le r\'epertoire /var/yp. En autre, changer la valeur des variables suivantes\\
            
	ypsrcdir = /etc/nis\\
            
	yppwddir = /etc/nis\\
           
        all = passwd shadow group\\
          
	Fixer le nom de votre domaine NIS par la commande domainname nis\_domain (attention, \`a ne pas confondre avec le domaine DNS).\\ 

\newpage

	Vous deviez mettre cette commande dans un fichier de d\'emarrage\\
          
	Lancer le d\'emon serveur:\\ 

	/etc/rc.d/init.d/ypserv start\\
         
	 Election du serveur en ma\^\i tre : ypinit m\\
          
	Pour changer les passwd des utilisateurs, lancer le d\'emon yppasswdd\\
            
	yppasswdd D /etc/nis\\
        
        Votre serveur est maintenant configur\'e et pr\^et \`a recevoir des requ\^etes clientes.\\
        
\section{Configuration d'un client NIS}

        On supposera l\`a aussi que les packages NIS sont install\'es sur la machine. Deux fichiers sont \`a configurer pour le client.\\

          Ajouter une entr\'ee dans le fichier /etc/yp.conf\\

            ypserver nom\_du\_serveur\_NIS\\

            (rajouter une entr\'ee dans le fichier /etc/hosts si n\'ecessaire)\\

          Modifier le fichier /etc/nsswitch.conf de la façon suivante:\\

            \# /etc/nsswitch.conf\\

            \# Un exemple de configuration de NSS (Name Service Switch). Ce fichier doit \^etre trie en mettant en t\^ete les services les plus utilises.\\
            
        passwd: compat\\
            
	group: compat\\
            
	shadow: compat\\
            
       	passwd\_compat: nis\\
        
	group\_compat: nis\\
        
	shadow\_compat: nis\\
            
        hosts: nis files dns\\
             
	Fixer le domaine NIS : domainname nis\_domain\\

          Lancer la commande ypbind pour lancer le service NIS sur le client\\
            
	/usr/sbin/ypbind\\
        

        Votre client est maintenant configurer. Vous pouvez essayer de vous connecter avec un compte export\'e. Une fois NIS install\'e, la commande passwd n'est plus utilisable par l'utilisateur pour changer son mot de passe. Il devra donc utiliser les commandes yppasswd, ypchsh et ypchfn pour modifier les caract\'eristiques de son compte.\\
        
\section{Pour aller plus loin}

        Ceci n'est qu'un bref r\'esum\'e de l'installation et de la configuration du service NIS. Pour plus d'informations, consultez le HOWTO consacr\'e au service NIS.\\
        
	Par exemple, il serait aussi int\'eressant de pouvoir donner aux utilisateurs la possibilit\'e de r\'ecup\'erer leurs home directory sur la machine sur laquelle ils sont connect\'es. Une solution s'appuyant sur un serveur NFS et l'automonteur est d\'ej\`a mise en place sur certain site. On se croirait presque revenu dans le merveilleux monde de Windows NT avec les profils errants.\\

        Si vous entendez parler de NIS+, sachez que pour le moment, il n'est qu'en phase de développement sur les syst\`emes Linux.\\
        
	NIS+: Network Information Service (Plus...) : en gros, version de NIS am\'elior\'ee. NIS+ a \'et\'e conçu par Sun Microsystems Inc. pour remplacer NIS, avec un niveau de s\'ecurit\'e sup\'erieur et une meilleure gestion pour les grosses installations.\\


\end{document}