Чтобы цель препятствовала тому, чтобы несколько копий работали, используйте скопление (Linux), lockf (FreeBSD), халтура (предоставленный некоторые системы, менее надежные). Это не ограничит время выполнения, но гарантирует, что только один процесс работает. Затем если это зависает, можно проанализировать его состояние на лету.
Можно ограничить процессорное время порожденного процесса с помощью ulimit встроенную оболочку.
Для ограничения стенного времени можно записать сценарий, который ожидает завершения процесса и уничтожает его после тайм-аута. Это легче в Python/Perl/и т.д. но оболочка также позволяет это (использующий прерывание и/на второстепенных детей).
Иногда полезно обеспечить установленное время между вызовами (т.е. от конца предыдущего для запуска затем один) вместо вызова запускается, как крон делает. Обычные виды крона не позволяют это, необходимо запустить специальный скрипт.
Вы задаете много вопросов, таким образом, это будет сложным вопросом для ответа. Я предполагаю, что самая легкая вещь сделать состояла бы в том, чтобы совместно использовать мою установку NIS (да даже при том, что я сказал Вам не настраивать один, у меня есть одна установка в моей LAN дома для тестирования).
Для запуска Вы должны будете иметь ypserv
, ypbind
, и yp-tools
пакеты установлены. Вы не говорите, какой дистрибутив Вы используете, таким образом, я собираюсь обойти Вас посредством своей установки на CentOS 5.x. У меня есть клиенты Ubuntu 12.04 в моем домене NIS, таким образом, мы можем скорректировать этот ответ по мере необходимости в будущем.
Для хранения вещей резюме, я собираюсь быть отфильтровывающим комментариев в моих файлах конфигурации и только показе Вам строки, которые на самом деле делают что-либо. Снова, если Вам нужно разъяснение, я могу отправить их в случае необходимости.
Этот файл настраивает, как я хочу мой 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
файлы для корпуса фактических паролей, таким образом, я делаю то же здесь.
Домен 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. Дополнительную информацию см. в странице справочника доменного имени.
Это - файл, который используется клиентами (ypbind
) так, чтобы они знали что сервер соединиться с.
# more /etc/yp.conf |egrep -v "^#|^$"
domain nis.bubba.home server 192.168.1.101
Этот файл управляет тем, какие средства будут использовать 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
Чтобы попытаться сохранить вещи прямо, я настроил этот каталог и заполнил его с файлами, из которых мои карты 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:::
Этот каталог то, где сервер 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
Вот некоторые выборки от моего 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, Вы были бы лучше обслужены в изучении, как развернуть LDAP.
Если это имеет значение я сделал вещи немного по-другому. Так как я немного тороплюсь, я решил дать 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.
/etc/yp/passwd
и т.п.? Нормальноеuseradd
двоичный файл только пишет информацию в/etc/passwd
, и в моем случае я хотел бы смочь добавить пользователей только к установке NIS а не к локальной машине.Удачи! – andreas-h 06.01.2017, 20:04