Установка ограниченного сервера NIS

Чтобы цель препятствовала тому, чтобы несколько копий работали, используйте скопление (Linux), lockf (FreeBSD), халтура (предоставленный некоторые системы, менее надежные). Это не ограничит время выполнения, но гарантирует, что только один процесс работает. Затем если это зависает, можно проанализировать его состояние на лету.

Можно ограничить процессорное время порожденного процесса с помощью ulimit встроенную оболочку.

Для ограничения стенного времени можно записать сценарий, который ожидает завершения процесса и уничтожает его после тайм-аута. Это легче в Python/Perl/и т.д. но оболочка также позволяет это (использующий прерывание и/на второстепенных детей).

Иногда полезно обеспечить установленное время между вызовами (т.е. от конца предыдущего для запуска затем один) вместо вызова запускается, как крон делает. Обычные виды крона не позволяют это, необходимо запустить специальный скрипт.

0
12.06.2013, 02:41
2 ответа

Вы задаете много вопросов, таким образом, это будет сложным вопросом для ответа. Я предполагаю, что самая легкая вещь сделать состояла бы в том, чтобы совместно использовать мою установку NIS (да даже при том, что я сказал Вам не настраивать один, у меня есть одна установка в моей LAN дома для тестирования).

Для запуска Вы должны будете иметь ypserv, ypbind, и yp-tools пакеты установлены. Вы не говорите, какой дистрибутив Вы используете, таким образом, я собираюсь обойти Вас посредством своей установки на CentOS 5.x. У меня есть клиенты Ubuntu 12.04 в моем домене NIS, таким образом, мы можем скорректировать этот ответ по мере необходимости в будущем.

Для хранения вещей резюме, я собираюсь быть отфильтровывающим комментариев в моих файлах конфигурации и только показе Вам строки, которые на самом деле делают что-либо. Снова, если Вам нужно разъяснение, я могу отправить их в случае необходимости.

ypserv

Этот файл настраивает, как я хочу мой ypserv совместно использовать различные карты NIS, которые я имею. Ниже я ограничиваю, каким подсетям IP позволяют получить доступ к различным картам.

# 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

Я должен упомянуть, что изучил, как настроить NIS/YP от старых парней Sun/Соляриса, таким образом, мой подход мог бы быть немного от пути. Они всегда использовали passwd.adjunct файлы для корпуса фактических паролей, таким образом, я делаю то же здесь.

доменное имя установки NIS

Домен My NIS называют nis.bubba.home. Под дистрибутивами Red Hat Вы обычно устанавливали домен NIS в этом файле: /etc/sysconfig/network. Здесь является моим:

$ more /etc/sysconfig/network
HOSTNAME="flanders.bubba.net"
NETWORKING="yes"
NISDOMAIN=nis.bubba.home

С этой записью, когда Вы работаете domainname команда необходимо добраться NISDOMAIN значение:

# domainname
nis.bubba.home

Много людей запутывается той командой, она не имеет никакого отношения к доменному имени хоста (bubba.net), это - подлинное имя домена NIS. Дополнительную информацию см. в странице справочника доменного имени.

/etc/yp.conf

Это - файл, который используется клиентами (ypbind) так, чтобы они знали что сервер соединиться с.

# more /etc/yp.conf |egrep -v "^#|^$"
domain nis.bubba.home server 192.168.1.101

/etc/nsswitch.conf

Этот файл управляет тем, какие средства будут использовать 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

Чтобы попытаться сохранить вещи прямо, я настроил этот каталог и заполнил его с файлами, из которых мои карты NIS будут в конечном счете созданы из. Это не полный список, но здесь является несколькими файлами, которые я имею в этом каталоге:

auto.master, группа, passwd, passwd.adjunct и тень

# shadow
rhays:##rhays:11304::99999::::135545092
tracy:##tracy:12390:0:99999:7:::
tuber:##tuber:12390:0:99999:7:::

В использовании passwd.adjunct пароли хранятся в том файле и существует ссылка (см. выше т.е. ##rhays), который говорит который строка в passwd.adjunct идет с конкретным пользователем.

# passwd.adjunct
rhays:ZNiFOTwsw313B:11299:0:99999:7:::

/var/yp

Этот каталог то, где сервер NIS, ypserv обменяется данными от. Существует a Makefile там, который Вы используете для восстановления изменений в картах, поскольку Вы редактируете файлы в /etc/yp.

Этот каталог похож на это:

# ls | column
binding     Makefile.orig    nicknames       RCS          ypservers
Makefile    Makefile.rpmnew  nis.bubba.home  securenets

Прежде чем мы войдем Makefile, другие файлы здесь, которые представляют интерес, securenets файл. Это может управлять тем, что IP-адресам и подсетям позволяют подключить к этому серверу. Вот моя версия того файла:

# securenets
host 127.0.0.1
255.255.255.0   192.168.1.0

Make-файл

Вот некоторые выборки от моего Makefile помочь показать, как сплочены вещи. Для начинающих эти переменные указывают на мои файлы карты.

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

Существуют дополнительные модификации, которые должны быть сделаны к Makefile на основе файлов карты Ваша конкретная среда состоит.

Объединение всего этого

Таким образом, когда Вы имеете, устанавливают файлы карты, файлы конфигурации, и установил все необходимые пакеты, необходимо сделать следующее:

$ 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
...

Таким образом, я должен выполнять NIS?

Я все еще говорю "нет". Это - древняя технология, имеет очень плохую безопасность и смехотворно сложно. Я отправил это учебное руководство больше, чтобы показать Вам, почему Вы не должны использовать его, а не поощрять Вас использовать его.

В течение времени, которое инвестируют в изучение деталей NIS, Вы были бы лучше обслужены в изучении, как развернуть LDAP.

4
28.01.2020, 02:21
  • 1
    +1 для всех подробностей и полного "хорошего парня Greg" качество Вашего ответа :) Я буду читать на LDAP. –  Joseph R. 12.06.2013, 11:04
  • 2
    Спасибо, я должен был искать Хорошего Guy Greg для напоминания мне о той ссылке. Лучше это затем Подонок Steve 8-). –  slm♦ 13.06.2013, 03:26
  • 3
    @slm в этой установке, как Вы удобно добавили бы новых пользователей к /etc/yp/passwd и т.п.? Нормальное useradd двоичный файл только пишет информацию в /etc/passwd, и в моем случае я хотел бы смочь добавить пользователей только к установке NIS а не к локальной машине.Удачи! –  andreas-h 06.01.2017, 20:04
  • 4
    @andreas-h - если у Вас есть новый вопрос, спрашивает это относительно основного сайта и ссылается на этот вопрос/ответ. спасибо –  slm♦ 06.01.2017, 20:11

Если это имеет значение я сделал вещи немного по-другому. Так как я немного тороплюсь, я решил дать NIS, другие идут. Я разочаровался в подходе netgroup и просто настроил мой hosts_access(5) следующим образом:

/etc/hosts.allow

ALL: localhost,.my.domain

#Don't lock yourself out:
sshd: ALL 

/etc/hosts.deny

ALL: ALL

Я управлял, кто может получить доступ к NFS, монтируются так же в /etc/exports:

/my/nfs/share -rw *.my.domain

Вместе с модификацией к /etc/nsswitch.conf иметь:

hosts: files dns

Другими словами, я удалил mDns, потому что он распознает хосты что мое локальное bind9 сервер не был бы.

Теперь мой сервер DHCP только присваивает дюйм/с клиентам с известными MAC-адресами и обновляет bind9 записи сервера; таким образом, DNS только разрешит хосты, заканчивающиеся в .my.domain если им присвоил DHCP, и таким образом только положил, что хосты смогут видеть карты NIS или смонтировать долю NFS.

Я знаю, что это может дурачить спуфинг MAC-адреса, но это - лучшее решение, которое я мог найти, испытав недостаток во времени, чтобы расти на LDAP.

0
28.01.2020, 02:21

Теги

Похожие вопросы