���� ���� ����

6. NIS�� ��ġ�ϱ� ���� �ʿ��� �͵��� �����ΰ�?

6.1 �������� Server, SlaveȤ�� Client���� �����϶�.

�� ������ ���ϱ� ����, ���� �ΰ����� �����ؾ� �Ѵ�.

  1. �������� �ӽ��� �����ϴ� NIS ������ �Բ��ϴ� ��Ʈ��ũ�� �Ͽ��� �� �� �̴�.
  2. �������� ���� ��Ʈ��ũ�� NIS ������ ����.

ù ��° ��쿡��, ���� ypbind, ypswitch, ypcat, yppoll, ypmatch ���� Ŭ���� ��Ʈ ���α׷����� �ʿ�� �Ѵ�. ���� �߿��� ���α׷��� ypbind�̴�. �� ���α� ���� �׻� ���� �߿� �־�� �Ѵ�. �װ��� �� ���α׷��� �׻� ���μ����� ���� Ʈ�� �־�� �Ѵٴ� ���̴�. �̰��� ���� ���μ����� �ý��� ���� ���Ͽ� ���� ���۵Ǿ�� �Ѵ�. (����, /etc/init.d/nis, /sbin/init.d/ypclinet, /etc/rc.d/ init.d/ypbind, /etc/rc.local)�������� �ý����� ypbind�� ���۵��� ���� NIS�� Ŭ���̾�Ʈ�� �Ǵ� ���̴�.

�� ��° ��쿡, NIS ������ �������� ���� ��, �������� �и� NIS ���� ���α� ��(���� ypserv�� �Ҹ�)�� �ʿ��� ���̴�. NIS�����ϱ� �κп��� Peter Eriksson�� Thorsten Kukuk�� ���� ������� "ypserv" �� �̿��� �� �������� ������ �ӽ��� NIS�� ��� ��ġ�ϴ����� ������ ���̴�. ���� 0. 14���ʹ� 4.1�κп��� ����� �� �ִ� master-slave������ ������ �ٴ� ���� �� ���� �ξ��.

������ Tobias Reber�� ���� yps��� NIS ���� ���α׷��� master-slave ���� �� ����������, ���������� �������� ���� �ٸ� ������� �ִ�.

6.2 ����Ʈ����

�ý��� ���̺귯���� "/usr/lib/libc.a" (���� 4.4.2������ ��) Ȥ��, �������� �귯���� "/lib/libc.so.x"�� NIS Ŭ���̾�Ʈ, ���� ���α׷��� ���������� �� ���� �ϱ� ���� �ý��� ���� ��� ������ �ִ�. GNU C ���̺귯�� 2(glibc2)�� ���ؼ��� /lib/libnsl.so.1�� �ʿ���Ѵ�.

� �̵��� NIS�� ���� 4.5.21������ "/usr/lib/libc.a"�͸� �۵��ȴٰ� �ϱ� ������, �����ϰ� �۵��ϱ� ���Ѵٸ� ���� ������ libc���� ���� �ʴ°� ����. NIS Ŭ���̾�Ʈ ����Ʈ����� ������ ��ҿ��� ���� �� �ִ�.

Site                    Directory                       File Name

ftp.kernel.org          /pub/linux/utils/net/NIS        yp-tools-2.2.tar.gz
ftp.kernel.org          /pub/linux/utils/net/NIS        ypbind-mt-1.4.tar.gz
ftp.kernel.org          /pub/linux/utils/net/NIS        ypbind-3.3.tar.gz
ftp.kernel.org          /pub/linux/utils/net/NIS        ypbind-3.3-glibc5.diff.gz
ftp.uni-paderborn.de    /linux/local/yp                 yp-clients-2.2.tar.gz

����Ʈ��� ������ ��, ����Ʈ��� ���Ե� �ν�Ʈ������ �а� ������ �ٶ� ��. yp-clients 2.2�� libc4�� libc5 ���� 5.4.20������ ���� ���̴�. libc 5.4 .21�� glibc 2.x�� yp-tools 1.4.1�� �� ���� ������ �ʿ�� �Ѵ�. ���γ��� yp -tools 2.2�� ��� �������� libc���� �۵��ȴ�. ��, NIS �ڵ忡 ���װ� �־ , �������� 5.4.21 - 5.4.35 ������ libc�� ����ϸ� �ȵȴ�. ��� 5.4.36 ���� ������ ����ϴ°� ����. �׷��� ������ ��κ��� YP���α׷��� �۵����� ���� ���̴�. ypbind 3.3�� ���� ��� ���̺귯������ �۵��Ѵ�. ���� gcc 2.8.xȤ�� �� ���� ����,egcs Ȥ�� glibc 2.x�� ����Ѵٸ�, ypbind-3.3-glibc5.diff patc h�� ypbind-3.3�� �߰��� ����Ѵ�. yp-clients 2.2���� ���� ypbind�� ������� ����. ypbind-mt�� ���γ��� ��Ƽ ������ �����̴�. �̰��� Kernel 2.2�� glibc 2.1Ȥ�� ���� ������ �ʿ�� �Ѵ�.

6.3 ypbind ����

����Ʈ��� ���������� �������� ������, ���� �ν����� �� �غ� �� ���� ��. ypbind ������ ������ ���丮�� /usr/sbin �̴�. � �̵��� NYS�� �̿� �ϴ� �ý��ۿ����� ypbind�� �ʿ� ���� ���̶�� ���� ���� �ִ�. �̰��� Ʋ�� ���̴�. ypwhich�� ypcat�� �׻� ypbind�� �ʿ�� �Ѵ�.

��ġ �ܰ��� ���� ù��°�� �̰��� �ؾ��Ѵ�. �ٸ� ���̳ʸ���(ypwhich, ypcat , yppasswd, yppoll, ypmatch)�� ���� /usr/bin�� ���� �ٸ� ��� �������� �� �� ������ ���� �־�� �Ѵ�.

���ο� ������ ypbind�� /etc/yp.conf��� ���������� ������ �ִ�. �������� �� ���Ͽ��� NIS������ �ϵ��ڵ��� �� �� �ִ�. �� �� ���� ������ manual pa ge�� ypbind(8)�� �����ϱ� �ٶ���. NYS�� ���ؼ��� �� ������ �ʿ��ϴ�. �������:

        ypserv votager
        ypserv defiant
        ypserv ds9

���� �ý��ۿ��� NIS���� ȣ��Ʈ ������ �˾Ƴ� �� �ִٸ� �׳� �� �̸��� ��� �ϸ� ������, �׷��� ���� ��쿡�� IP address�� ����ؾ� �Ѵ�. ypbind 3.3�� ���װ� �־, �� ���� �������� ypserv ds9���� ����ؾ� �Ѵ�. ��� �ٸ� �� ���� ���õȴ�. ypbind-mt�� �̰��� �����Ͽ� ����Ѵ�.

��ŸƮ �� ���Ͽ��� ������ ������ ��������, ypbind�� �׽��� ���� ���� ����. ypbind�� �׽�Ʈ �� ���� ���� ������ ���� �� �� �ִ�.

���� �������� ypcat��� ���� NISŬ���̾�Ʈ ���α׷����� �����ų �� �ִ�. ���� ��� "ypcat passwd.byname"�� �����п��� ��ü NIS �н����� �����ͺ��� ���� ������ �� ���̴�.

�߿���� : ���� �������� �׽�Ʈ�� �׳� �dzʶپ��ٸ�, domain ������ ������ �� �Ͱ�, ���� ���丮 ����� ���� Ȯ���� �϶�.

        /var/yp

�� ���丮�� ypbind�� ���������� ����DZ� ���Ͽ� "�ݵ��" �����ؾ� �Ѵ�.

domainnmae�� �ùٸ��� ���õǾ������� ��������, yp-tools 2.2�� /bin/ypdomai nname �� ����϶�. �̰��� ���� ������ yp_get_default_domain()�Լ��� ��� �Ѵ�. �̰��� �������� �⺻���� �����Ǿ� ���� ������ ����Ű�� (none) domain name�� ������� �ʴ´�.

���� �׽�Ʈ�� �Ǿ��ٸ�, �������� ���ý� ypbind�� ����Ǿ� �������� �ӽ��� NIS Ŭ���̾�Ʈ�� �� �� �ֵ��� ���� ������ �����ϱ� ���� ���� �𸥴�. ypbin d�� ���۵DZ� ���� domainname�� ���õȴٴ� ���� Ȯ���� �˾� ����.

�ٷ� �װŴ�. �ӽ��� ����Ʈ�ϰ�, ypbind�� ������ ���۵Ǿ����� ��Ʈ �޽��� �� ���캸�ƶ�.

6.4 Traditional NIS������ NIS�����ϱ�

ȣ��Ʈ lookup�� ���� /etc/host.conf ������ lookup order �ٿ� "nis" �� �ٿ� �־��. �ڼ��� ������ ���Ͽ� man�������� "resolv+.8"�� �����϶�.

������ NISŬ���̾�Ʈ�� /etc/passwd���Ͽ� ���� ���� �߰��Ͽ���.

+::::::

�������� +�� -���ڵ��� ����Ͽ� ����ڵ��� ����/���� Ȥ�� ������ �� �ִ�. ���� guest������ ����ϰ� �ʹٸ�, ���� -guest�� /etc/passwd���Ͽ� �־��ָ� �ȴ�. "linux"��� �������� ksh�� ���� �ٸ� ���� ����ϰ� �ϰ� �ʹ��ص� �� �� ���� ����. ���� "+linux::::::/bin/ksh" ( ""�� �����ϰ� )�� /etc/passwd �� �߰��ϸ� �ȴ�. �����ϰ� ���� ���� �ʵ忡 ���ؼ��� �׳� ��ĭ���� ���� �� �� �ȴ�. �������� ���� ����ڵ��� �����ϱ� ���� Netgroup�� ��� �� �� �ִ�.

���� ���, miquels�� dth, ed �׸��� ��� sysadmin netgroup�� ��� ����鿡 �Ը� �α� ������ ���������, �ٸ� ��� �������� ���� �����͸� ��밡���� ���·� ���� �α� ���ؼ��� ������ ���� �ϸ� �ȴ�.

        +miquels:::::::
        +ed:::::::
        +dth:::::::
        +@sysadmins::::::
        -ftp
        +:*::::::/etc/NoShell 

������������ ���� ������ ���� �н����� �ʵ带 ��ø �� �� �ִ�. "ftp" �α� �� ���� �߱� ������, �̰��� ���̻� �˷����� �ʾ� anonymous ftp�� ���̻� �� ������ ���� ���̴�.

netgroup�� ������ ����.

sysadmins (-,software,) (-,kukuk,)

�߿���� : netgroup�� ����� libc 4.5.26���� ��������� ������, 4.5.26 �� �� ������ ����ϰ� �ȴٸ�, ypbind�� ��� �ִ� �� NIS �н����� �����ͺ��̽� �� �ִ� ��� �������� �������� ������ �ӽ��� �α� �� �� �ִ�!!!

6.5 NYS������ NIS�����ϱ�

NIS ���� ������ /etc/yp.conf���� �ʿ��� ������ ���� �ùٸ� ������ ����Ű �� ���̴�. ���� Name Services Switch ���� ����( /etc/nsswitch.conf )�� �� �ٸ��� �¾� �Ǿ� �־�� �Ѵ�.

�������� ypbind�� ��ġ�ؾ� �Ѵ�. libc�� �̰��� �ʿ�� ������ ������, NIS(Y P) ������ �̰��� �ʿ�� �Ѵ�.

�������� ����� ����/������ ���(+/-guest/+@admins)�� ����ϱ� ���Ѵٸ�, n sswitch.conf ���Ͽ��� "passwd: compat"�� "group :compat"�� ����ؾ� �Ѵ�. "shadow: compat"�� ���ٴ� ���� Ȯ���� �˾� ����. �̷� ��쿡 �װ� ��� "sh adow: files nis"�� ����Ѵ�.

NYS �ҽ����� libc 5 �ҽ����� �Ϻκ��̴�. ������ �� ��, ó���� "Values corr et"�� ������ "NO"��� �ϰ�, "Build a NYS libc from nys"��� �������� "YES" ��� ���϶�.

6.6 glibc 2.x������ NIS�����ϱ�

glibc�� "�������� NIS"�� ����Ѵ�. �׷��� ypbind�� ����ؾ��� �ʿ䰡 �ִ� ���̴�. Name Services Switch���� ����( /etc/nsswitch.conf ) ������ �ùٸ��� �¾� �Ǿ� �־�� �Ѵ�. ���� �������� passwd, ������ Ȥ�� group�� ���Ͽ� co mpat ��带 ����Ѵٸ� ���� �� �������� "+"�� �߰��� ��� �Ѵ�. �׷��� ���� �� ����/���� ����� ����� �� �ִ�. ������ �ֶ󸮽� 2.x���� �ϴ� �Ͱ� ��Ȯ �ϰ� ��ġ�Ѵ�.

6.7 nsswitch.conf ���Ͽ� ���ؼ�

/etc/host.conf�� ȣ��Ʈ�� ã�� ����� �����ϴ� �Ͱ� ����, Network Service switch���� /etc/nsswitch.conf�� � ������ �䱸�Ǿ��� ��, lookup�ϴ� ���� �� �����Ѵ�. ���� ��� ���� ����

        hosts: files nis dns

host�� lookup(ã��)�ϴ� ����� ���� NIS lookup�� ������ /etc/hosts ������ ã�ƺ��� ���������� ������ ���� ����( /etc/resolv.conf�� named )�� ���� ��. �� ��, �������� ��쿡�� ������ �����Ѵ�. �� ������ ��� �������� �б� ������ �־����� �Ѵ�! �������� man-page�� nsswitch.5Ȥ�� nsswitch.conf.5�� �� �� �� ���� ������ ���� �� ���� ���̴�.

NIS�� ���� /etc/nsswitch.conf �� ���� ���̴�.

#
# /etc/nsswitch.conf
#
# An example Name Service Switch config file. This file should be
# sorted with the most-used services at the beginning.
#
# The entry '[NOTFOUND=return]' means that the search for an
# entry should stop if the search in the previous entry turned
# up nothing. Note that if the search failed due to some other reason
# (like no NIS server responding) then the search continues with the
# next entry.
#
# Legal entries are:
#
#   nisplus or nis+     Use NIS+ (NIS version 3)
#   nis or yp       Use NIS (NIS version 2), also called YP
#   dns         Use DNS (Domain Name Service)
#   files           Use the local files
#   db          Use the local database (.db) files
#   compat          Use NIS on compat mode
#   [NOTFOUND=return]   Stop searching if not found so far
#

passwd:         compat
group:          compat

# For libc5, you must use shadow: files nis
shadow:         compat

passwd_compat: nis
group_compat: nis
shadow_compat: nis

hosts:          nis files dns

services:   nisplus [NOTFOUND=return] files
networks:   nisplus [NOTFOUND=return] files
protocols:  nisplus [NOTFOUND=return] files
rpc:        nisplus [NOTFOUND=return] files
ethers:     nisplus [NOTFOUND=return] files
netmasks:   nisplus [NOTFOUND=return] files
netgroup:   nisplus
bootparams: nisplus [NOTFOUND=return] files
publickey:  nisplus [NOTFOUND=return] files 
automount:  files nisplus
aliases:    nisplus [NOTFOUND=return] files

passwd_compat, group_compat �׸��� shadow_compat�� glibc 2.x������ ������ ��. ���� /etc/nsswitch.conf�� �����쿡 ���� ��Ģ���� ���ٸ�, glibc�� look up�� ���� passwd ��Ģ�� ����� ���̴�. glibc�� ���� hesoid���� �ٸ� looku p ������ �ִ�. ���� ���� ������ ����, glibc ������ �����ϱ� �ٶ���.

6.8 NIS������ ������(Shadow) �����

NIS������ ������ �н������ �׻� ���� ���� ���̵���̴�. �����찡 �ִ� ���� �� ���� �Ӹ� �ƴ϶�, �̰��� ���� ���� ����� ������ C ���̺귯�������� ���� �ȴ�. NIS������ ������ �н����带 ���ϴ� ���� ����� ���� ���� �ý����� �� ���� /etc/shadow�� �ִ� ���̴�. �̷��� �����ν� �������� root �α�� ������ �� �̿��� �� �ְ�, �Ϲ� NIS �����鿡�Դ� ������ passwd ����� ����� �� �� ��. �̰����� ��� NISŬ���̾�Ʈ�� �Բ� �۵��ϴ� ������ ���� �� �ִ�.

Linux

NIS���� ������ �н����带 �����ϴ� ������ libc�� GNU C Library 2.x�ۿ� �� ��. ������ libc 5�� �̰��� �������� ���Ѵ�. ������ libc 5�� NYS�� ������ �ڵ�� �Բ� ������ �Ǿ�����, �� �ڵ�� � ��쿡 �־ �ɰ��ϰ� ������ ����, ��� �ùٸ� ������ ��Ʈ���� ���Ͽ� �۵����� �ʴ´�.

Solaris

�ֶ󸮽��� NIS�� ���� ������ �н����带 �������� �ʴ´�.

PAM

PAM�� ������ pam_pwdb/libpwdb���� NIS�� ���� �н����带 �������� �ʴ´�. �̰��� RedHat 5.x �����鿡�� �־ ū �����̴�. ���� glibc�� PAM�� ���� �� �ִٸ�, �������� /etc/pam.d/* ��Ʈ������ ������ �ʿ䰡 �ִ�. ��� pam_p wdb ��Ģ���� pam_unix_* ����� ��ü�ض�. pam_unix_auth.so ����� ���� �� ����, �̰��� ������ �۵������� �ʴ´�.

/etc/pam.d/login ������ ���� ������ �����ϴ�:

#%PAM-1.0
auth       required     /lib/security/pam_securetty.so
auth       required     /lib/security/pam_unix_auth.so
auth       required     /lib/security/pam_nologin.so
account    required     /lib/security/pam_unix_acct.so
password   required     /lib/security/pam_unix_passwd.so
session    required     /lib/security/pam_unix_session.so

������ ���Ͽ� �������� pam_unix_auth.so ����� �ʿ��ϴ�. ������ ���ؼ��� p am_unix_acct.so�� �ʿ��ϰ� �н����带 ���ؼ� pam_unix_passwd.so �׸��� �� ��ó���� ���� pam_unix_session.so����� �ʿ��ϴ�.


���� ���� ����