NIS e NFS
O NIS (Network Information Server, i. e., Servidor de Informação em Rede) é uma ferramenta de rede que permite distribuir informações (e somente) de um servidor para um ou vários clientes.
Entende-se por informações, para usuários e grupos: nomes, membros de determinado grupo, senhas, shell utilizado, comentários e caminho para o diretório home.
Como servidor de informações o NIS não envia para o cliente seus arquivos pessoais (diretório home), esta é tarefa do NFS (Network File System), i. e., Sistema de Arquivos em Rede).
Para estes exemplos foi usado o GNU/Linux Debian etch 4.
NFS
Iniciando a configuração pelo servidor NFS para que quando um usuário fizer login ele não fique sem lugar para escrever.
Servidor
Para o NFS é necessário exportar o diretório para que ele possa ser montado no cliente quase da mesma forma como se fosse um HD local. Uma configuração simples seria exportar o diretório /home
, para tal deve-se colocar no arquivo de configuração /etc/exports
, do servidor, as seguintes linha, como a maioria dos arquivos de configuração as linha com #
:
/home/ 10.0.0.0/255.255.255.0(rw,no_root_squash,sync)
Veja maiores configurações com o comando:
# man exports
E reiniciar o serviço NFS:
# /etc/init.d/nfs-kernel-server restart
Stopping NFS kernel daemon: mountd nfsd.
Unexporting directories for NFS kernel daemon....
Exporting directories for NFS kernel daemon....
Starting NFS kernel daemon: nfsd mountd.
Cliente
Para o cliente é usado o arquivo /etc/fstab
que é o mesmo arquivo usado para outros pontos de montagem, veja um exemplo:
10.0.0.1:/home /home nfs defaults 0 0
NIS
Servidor
Para transportar as informações para clientes vamos inicialmente editar o arquivo /etc/hosts
, veja o exemplo:
127.0.0.1 localhost.network.com localhost
10.0.0.1 ypserver.network.com ypserver
Edite também o arquivo /etc/hostname
com o nome de host do servidor:
ypserver
Agora reinicie o nome de host, para que o nome de host fique fixo, com um dos dois comandos abaixo:
# hostname ypserver
ou
# /etc/init.d/hostname.sh stop
# /etc/init.d/hostname.sh start
Edite o arquivo /etc/defaultdomain
somente com o nome de domínio:
network.com
Agora precisamos dizer ao NIS que este é um servidor NIS modificando as variáveis NISSERVER
e NISCLIENT
no arquivo /etc/default/nis
:
NISSERVER=master
NISCLIENT=false
Vá até o diretório /usr/lib/yp/
para criar os maps e validar as configurações do servidor:
# cd /usr/lib/yp/
# ./ypinit -m
At this point, we have to construct a list of the hosts which will run NIS
servers. ypserver is in the list of NIS server hosts. Please continue to add
the names for the other hosts, one per line. When you are done with the
list, type a <control D>.
next host to add: ypserver
next host to add: <control>+d
The current list of NIS servers looks like this:
ypserver
Is this correct? [y/n: y] y
We need a few minutes to build the databases...
Building /var/yp/network.com/ypservers...
gethostbyname(): Connection timed out
Running /var/yp/Makefile...
make[1]: Entrando no diretório `/var/yp/network.com'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
Updating rpc.byname...
Updating rpc.bynumber...
Updating services.byname...
Updating services.byservicename...
Updating netid.byname...
Updating protocols.bynumber...
Updating protocols.byname...
Updating netgroup...
Updating netgroup.byhost...
Updating netgroup.byuser...
Updating shadow.byname...
make[1]: Saindo do diretório `/var/yp/network.com'
ypserver has been set up as a NIS master server.
Now you can run ypinit -s ypserver on all slave server.
Configuração Extra: Restringindo a Rede
Uma configuração extra pode ser feita no arquivo /etc/ypserv.securenets
colocando nele a máscara de rede e o endereço da rede que terá permissão de acesso ao servidor:
255.0.0.0 127.0.0.0
255.255.255.0 10.0.0.0
Cliente
Edite o arquivo /etc/yp.conf
:
ypserver 10.0.0.1
Adicione ao final dos arquivos, /etc/passwd
:
+::::::
/etc/group
:
+:::
/etc/shadow
:
+::::::::
e /etc/gshadow
:
+:::
Lembre-se de que o arquivo /etc/default/nis
deve ter as variáveis desta forma para que seja configurado para cliente:
NISSERVER=false
NISCLIENT=true
Por fim reinicie com:
# /etc/init.d/nis restart