Você está fazendo muitas perguntas, então essa será uma pergunta difícil de responder. Eu acho que a coisa mais fácil a fazer seria compartilhar minha configuração NIS (sim, mesmo que eu tenha dito para você não configurar uma, eu tenho uma configuração em minha LAN em casa para fins de teste).
Para começar, você precisará ter os pacotes ypserv
, ypbind
e yp-tools
instalados. Você não diz qual distro você está usando, então eu vou orientá-lo através da minha configuração no CentOS 5.x. Eu tenho clientes Ubuntu 12.04 no meu domínio NIS para que possamos ajustar essa resposta conforme necessário.
Para manter as coisas breves, vou filtrar os comentários em meus arquivos de configuração e mostrar apenas as linhas que realmente estão fazendo alguma coisa. Novamente, se precisar de esclarecimentos, posso publicá-los, se necessário.
ypserv
Este arquivo configura como eu quero que meu ypserv
compartilhe os vários mapas NIS que eu tenho. Abaixo, estou limitando quais sub-redes IP têm permissão para acessar os vários mapas.
# more /etc/ypserv.conf |egrep -v "^#|^$"
dns: no
files: 50
xfr_check_port: yes
192.168.1. : * : shadow.byname : none
192.168.1. : * : passwd.adjunct.byname : none
192.168.1. : * : passwd.byuid : none
192.168.1. : * : * : none
* : * : * : deny
* : * : * : none
Devo mencionar que aprendi como configurar o NIS / YP de antigos usuários do Sun / Solaris para que minha abordagem fique um pouco fora do caminho. Eles sempre usaram arquivos passwd.adjunct
para abrigar as senhas reais, então eu faço o mesmo aqui.
definindo o nome de domínio do NIS
Meu domínio NIS é chamado nis.bubba.home. Sob as distribuições da Red Hat, você normalmente configuraria o domínio NIS neste arquivo: /etc/sysconfig/network
. Aqui está o meu:
$ more /etc/sysconfig/network
HOSTNAME="flanders.bubba.net"
NETWORKING="yes"
NISDOMAIN=nis.bubba.home
Com esta entrada, quando você executar o comando domainname
, deverá obter o valor NISDOMAIN
:
# domainname
nis.bubba.home
Muitas pessoas se confundem com esse comando, não tem nada a ver com o nome de domínio do host (bubba.net) é o nome real do domínio NIS. Consulte a página de manual do nome do domínio para obter mais detalhes.
/etc/yp.conf
Este é o arquivo usado pelos clientes ( ypbind
) para que eles saibam a qual servidor se conectar.
# more /etc/yp.conf |egrep -v "^#|^$"
domain nis.bubba.home server 192.168.1.101
/etc/nsswitch.conf
Este arquivo controla quais recursos usarão o NIS.
# more /etc/nsswitch.conf |grep nis |egrep -v "^#|^$"
passwd: files nis
shadow: files nis
group: files nis
hosts: files nis dns
networks: files nis
protocols: files nis
services: files nis
netgroup: files nis
automount: files nis
aliases: files nis
/ etc / yp
Para tentar manter as coisas corretas, configurei este diretório e o preenchai com os arquivos dos quais os meus mapas NIS serão construídos. Esta não é uma lista completa, mas aqui estão alguns dos arquivos que eu tenho neste diretório:
auto.master, group, passwd, passwd.adjunct & shadow
# shadow
rhays:##rhays:11304::99999::::135545092
tracy:##tracy:12390:0:99999:7:::
tuber:##tuber:12390:0:99999:7:::
Ao usar o passwd.adjunct, as senhas são armazenadas nesse arquivo e há uma referência (veja acima, por exemplo, ## rhays) que diz qual linha no passwd.adjunct
é usada por um usuário em particular.
# passwd.adjunct
rhays:ZNiFOTwsw313B:11299:0:99999:7:::
/ var / yp
Este diretório é onde o servidor NIS, ypserv
compartilhará os dados. Há um Makefile
que você usa para reconstruir as alterações nos mapas enquanto edita os arquivos em /etc/yp
.
Este diretório é assim:
# ls | column
binding Makefile.orig nicknames RCS ypservers
Makefile Makefile.rpmnew nis.bubba.home securenets
Antes de entrarmos no Makefile
, os outros arquivos aqui que são de interesse são o arquivo securenets
. Isso pode controlar quais endereços IP e sub-redes podem se conectar a esse servidor. Aqui está a minha versão desse arquivo:
# securenets
host 127.0.0.1
255.255.255.0 192.168.1.0
Makefile
Aqui estão alguns trechos do meu Makefile
para ajudar a mostrar como as coisas são combinadas. Para começar, essas variáveis apontam para meus arquivos de mapa.
YPSRCDIR = /etc/yp
YPPWDDIR = /etc/yp
YPBINDIR = /usr/lib/yp
YPSBINDIR = /usr/sbin
YPDIR = /var/yp
YPMAPDIR = $(YPDIR)/$(DOMAIN)
...
GROUP = $(YPPWDDIR)/group
PASSWD = $(YPPWDDIR)/passwd
SHADOW = $(YPPWDDIR)/shadow
ADJUNCT = $(YPPWDDIR)/passwd.adjunct
...
all: passwd group hosts rpc services netid protocols mail \
netgrp auto.master auto.home auto.packages auto.data1 auto.data2 \
auto.proj auto.vz_backups passwd.adjunct networks printcap
Existem modificações adicionais que precisam ser feitas no Makefile
com base nos arquivos de mapa dos quais seu ambiente específico é composto.
Reunindo tudo
Então, quando você configurar os arquivos de mapa, os arquivos de configuração e instalar todos os pacotes necessários, será necessário fazer o seguinte:
$ cd /var/yp && make
$ /etc/init.d/ypserv start
$ /etc/init.d/ypbind start
# who's my domain master?
$ ypwhich
flanders.bubba.net
# what maps are available?
$ ypwhich -m
passwd.byname flanders.bubba.net
passwd.adjunct.byname flanders.bubba.net
hosts.byaddr flanders.bubba.net
...
Então, devo estar executando o NIS?
Eu ainda digo não. É uma tecnologia antiga, tem uma segurança muito fraca e é ridiculamente complicada. Postei este tutorial mais para mostrar por que você não deveria usá-lo, em vez de incentivá-lo a usá-lo.
Pelo tempo investido no aprendizado dos detalhes do NIS, você estaria mais bem atendido ao aprender a implantar o LDAP.