- NIS: FreeBSD server & Linux clients, Keeper, 13:28 , 16-Мрт-04 (1)
Справился сам. В общем, если кому интересно, делается это так.1. Настройка и запуск серверной части на FreeBSD - как обычно, по манам. 2. Настройка клиентской части на Linux - тоже как обычно. 3. На FreeBSD файлик /etc/master.passwd копируем в /var/yp/master.passwd.nis. Правим, выкидываем ненужные для NIS-а аккаунты. 4. Правим мой скрипт ypbsdlin.pl на предмет $domain и запускаем. Скрипт перелопатит master.passwd под формат линуха, затем запустит ypinit, затем создаст нужные симлинки. 5. После этого все должно работать. ^_^ P.S. Вот сам ypbsdlin.pl: #!/usr/bin/perl $ypdir = "/var/yp/"; $domain = "IZILIN"; # Change it to your NIS domain name! $master = "master.passwd.nis"; # Change it to your BSD passwd file! open( ypmaster, $ypdir.$master); open( ypshadow, ">".$ypdir."master.passwd"); open( yppasswd, ">".$ypdir."passwd"); while (<ypmaster>) { if (/(.*):(.*):(.*):(.*):(.*):(.*):(.*):(.*):(.*):(.*)/) { print ypshadow "$1:$2:$3:$4:$6:$7:::\n"; $p = ( $2 ? "x" : "" ); print yppasswd "$1:$p:$3:$4:$8:$9:$10\n"; } } close( ypmaster); close( ypshadow); close( yppasswd); chmod( 0600, $ypdir."master.passwd", $ypdir."passwd"); system( "ypinit -m $domain"); symlink( "master.passwd.byname", $ypdir."/".$domain."/shadow.byname"); symlink( "master.passwd.byuid", $ypdir."/".$domain."/shadow.byuid");
- NIS: FreeBSD server & Linux clients, lavr, 13:37 , 16-Мрт-04 (2)
>Справился сам. В общем, если кому интересно, делается это так. > >1. Настройка и запуск серверной части на FreeBSD - как обычно, по >манам. >2. Настройка клиентской части на Linux - тоже как обычно. >3. На FreeBSD файлик /etc/master.passwd копируем в /var/yp/master.passwd.nis. Правим, выкидываем ненужные для >NIS-а аккаунты. мб ты что-то делал не так? master.passwd - это одно, а нисовый - это другое и в DES, видимо поэтому ты и упустил что-то и как результат вручную сделал то что должно быть автоматом.
- NIS: FreeBSD server & Linux clients, Keeper, 13:51 , 16-Мрт-04 (3)
>мб ты что-то делал не так? >master.passwd - это одно, а нисовый - это другое и в DES, видимо поэтому >ты и упустил что-то и как результат вручную сделал то что должно >быть автоматом. DES, MD5 - значения не имеет. У меня скопились и те, и те. Я подсовывал линуху локально в /etc/shadow фришные пароли - и те, и те - и он их принимал.
- NIS: FreeBSD server & Linux clients, lavr, 14:08 , 16-Мрт-04 (4)
>>мб ты что-то делал не так? >>master.passwd - это одно, а нисовый - это другое и в DES, видимо поэтому >>ты и упустил что-то и как результат вручную сделал то что должно >>быть автоматом. > >DES, MD5 - значения не имеет. У меня скопились и те, и >те. Я подсовывал линуху локально в /etc/shadow фришные пароли - и >те, и те - и он их принимал. да ты что, вот видимо в этом и была твоя проблема, скорее всего неверно установил и настроил nis-сервер. собственно все есть в man nis
- NIS: FreeBSD server & Linux clients, Keeper, 14:11 , 16-Мрт-04 (5)
>>мб ты что-то делал не так?Что я делал ДО этого. 1. Вписываем в /etc/rc.conf nisdomainname="IZILIN", nis_server_enable="YES" 2. Вписывать в /etc/rc.conf nis_yppasswdd_enable="YES" не стал - не хочу, чтоб юзвери пароли меняли 3. /etc/netstart 4. cp /etc/master.passwd /var/yp/, затем выкидываем служебные аккаунты. 5. ypinit -m IZILIN И - с линухом не работало. Подозреваю, что линух требует с NIS-сервера ypcat shadow.{byname,byuid}, а фришный ypinit таких баз вообще не делает. Еще может быть из-за разницы в форматах /etc/master.passwd на фре и /etc/shadow на линухе (т.к. /etc/passwd весьма похожи и там, и там).
- NIS: FreeBSD server & Linux clients, lavr, 15:08 , 16-Мрт-04 (6)
>>>мб ты что-то делал не так? > >Что я делал ДО этого. >1. Вписываем в /etc/rc.conf nisdomainname="IZILIN", nis_server_enable="YES" >2. Вписывать в /etc/rc.conf nis_yppasswdd_enable="YES" не стал - не хочу, чтоб юзвери >пароли меняли >3. /etc/netstart >4. cp /etc/master.passwd /var/yp/, затем выкидываем служебные аккаунты. >5. ypinit -m IZILIN > >И - с линухом не работало. Подозреваю, что линух требует с NIS-сервера >ypcat shadow.{byname,byuid}, а фришный ypinit таких баз вообще не делает. Еще >может быть из-за разницы в форматах /etc/master.passwd на фре и /etc/shadow >на линухе (т.к. /etc/passwd весьма похожи и там, и там). извини, ты прав, в Makefile.dist отсутствует создание shadow.byname|byuid, хотя самостоятельно отпатчить /var/yp/Makefile.dist[Makefile] не сложно: ... master.passwd: master.passwd.byname master.passwd.byuid shadow.byuid shadow.byname ... shadow.byname: $(MASTER) @echo "Updating $@..." .if ${MASTER} == "/dev/null" @echo "Master.passwd source file not found -- skipping" .else $(CAT) $(MASTER) | \ $(AWK) -F: '{ if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \ print $$1"\t"$$1":"$$2":12345:0:99999:7:::" }' $^ \ | $(DBLOAD) ${S} -f -i $(MASTER) -o $(YPMAPDIR)/$@ - $(TMP); \ $(RMV) $(TMP) $@ @$(DBLOAD) -c @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map. " ; fi .endif shadow.byuid: $(MASTER) @echo "Updating $@..." .if ${MASTER} == "/dev/null" @echo "Master.passwd source file not found -- skipping" .else $(CAT) $(MASTER) | \ $(AWK) -F: '{ if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \ print $$3"\t"$$0 }' $^ \ | $(DBLOAD) ${S} -f -i $(MASTER) -o $(YPMAPDIR)/$@ - $(TMP); \ $(RMV) $(TMP) $@ @$(DBLOAD) -c @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map. " ; fi .endif ...
- NIS: FreeBSD server & Linux clients, zapovit, 22:46 , 23-Май-04 (7)
Наткнулся на эти же грабельки совсем недавно. Очень своевременное решение, спасибо огромное!Хотя есть одно НО - первый рецепт работает как часы, а вот второй не помогает: =====8<===== >в Makefile.dist отсутствует создание shadow.byname|byuid, хотя самостоятельно отпатчить /var/yp/Makefile.dist[Makefile] >не сложно: > >master.passwd: master.passwd.byname master.passwd.byuid shadow.byuid shadow.byname =====8<===== у моего сервера странная реакция на эту строчку. make жалуется, что не знает как построить master.passwd.byname Кто занет - чего ж ему надо?
|