The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
NIS: FreeBSD server & Linux clients, !*! Keeper, 12-Мрт-04, 14:41  [смотреть все]
Поднял на фришной машине сервер NIS, на линуховой - клиент. На линухе списки пользователей видно. Зайти под юзером без пароля можно. Зайти под юзером с паролем - не пускает. Если на фришной машине сгенерить базу с UNSECURE=yes в /var/yp/Makefile, тогда заходится нормально. То есть проблема не в алгоритме шифрования паролей. Но это не выход, так как на клиентской тачке видно все хеши паролей по ypcat passwd.

Кто сталкивался - подскажите, куда копать.

  • 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

              Кто занет - чего ж ему надо?




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру