Новые книги

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

Книга будет интересна CEO и владельцам бизнеса, менеджерам, аналитикам.
Находясь на переднем крае программирования, книга «Программист-прагматик. Путь от подмастерья к мастеру» абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.

Прочитав эту книгу, вы научитесь:

Бороться с недостатками программного обеспечения;

Избегать ловушек, связанных с дублированием знания;

Создавать гибкие, динамичные и адаптируемые программы;

Избегать программирования в расчете на совпадение;

Защищать вашу программу при помощи контрактов, утверждений и исключений;

Собирать реальные требования;

Осуществлять безжалостное и эффективное тестирование;

Приводить в восторг ваших пользователей;

Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

The exports File

Файл exports

Рассмотрим, как настроить сервер NFS. Здесь можно задать, какие каталоги доступны клиентам, в каких режимах предоставляется доступ, а также можно дополнительно задать много параметров для управления доступом клиентов к файловой системе сервера. Файл /etc/exports перечисляет системы, которые сервер предоставляет для общего доступа.

По умолчанию, rpc.mountd не позволяет кому угодно монтировать файловые системы по сети, что является довольно разумной позицией. Для того, чтобы разрешить одному или большему количеству хостов монтировать nfs-каталог, он должен быть экспортирован, то есть определен в файле exports. Типовой файл может выглядеть следующим образом:

# exports file for vlager
/home             vale(rw) vstout(rw) vlight(rw)
/usr/X11R6        vale(ro) vstout(ro) vlight(ro)
/usr/TeX          vale(ro) vstout(ro) vlight(ro)
/                 vale(rw,no_root_squash)
/home/ftp         (ro)

Каждая строка определяет каталог и хост, которому можно монтировать его. Имя хоста обычно задает его полное доменное имя, но может содержать универсальные символы * и ?, которые действуют аналогично их действию в оболочке Bourne. Например, lab*.foo.com соответствует lab01.foo.com также, как и laboratory.foo.com. Если имя хоста не задано, как с каталогом /home/ftp в примере выше, то любому хосту позволено монтировать этот каталог. Хост может быть также задан его IP-адресом в форме address/ netmask.

При проверке клиентского хоста по файлу exports, rpc.mountd будет искать имя клиента, используя вызов gethostbyaddr. С DNS этот вызов возвращает каноническое имя машины клиента, так что Вы должны удостовериться в том, не используются ли псевдонимы в exports. Без использования DNS, возвращенное имя будет первым подходящим именем, найденным в файле hosts, которое соответствует адресу клиента.

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

secure

Запрос должен прийти с одного из зарезервированных портов, то есть с порта, номер которого меньше 1024. Задан по умолчанию.

insecure

Задает действие, обратное действию параметра secure.

ro

Монтировать каталог NFS только для чтения. Задан по умолчанию.

rw

Монтировать каталог NFS для чтения и записи.

root_squash

Все обращения по NFS выполнять от имени пользователя nobody (uid 65534) на сервере независимо от того, пользователь с каким uid послал запрос с клиента.

no_root_squash

Не отображать uid 0 на uid 65534. Задан по умолчанию.

link_relative

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

link_absolute

Оставляет все символьные связи такими, какими они и были (нормальное поведение для Sun NFS серверов).

map_identity

Клиентские uids и gids соответствуют серверным. Задан по умолчанию.

map_daemon

Клиент и сервер не разделяют пространство uid/gid. rpc.nfsd построит карту отображений ID клиента и сервера, запрашивая на клиенте демон rpc.ugidd.

map_static

Этот параметр позволяет Вам определять имя файла, который содержит статическую карту uids и gids. Например, map_static=/etc/nfs/vlight.map определит файл /etc/nfs/vlight.map как карту uid/gid. Синтаксис файла карты описан на man-странице exports(5).

map_nis

Предписывает NIS-серверу выполнять работу по отображению uid и gid.

anonuid и anongid

Эти параметры позволяют Вам определять uid и gid анонимного пользователя. Это полезно, если Вы имеете том, экспортируемый для монтирования всеми желающими.

Все ошибки при обработке файла exports будут переданы syslogd daemon на уровне notice при запуске rpc.nfsd или rpc.mountd.

Заметьте, что имена хостов будут получены из IP-адресов клиентов обратным поиском, так что Вы должны иметь правильно сконфигурированный сервер имен. Если Вы используете BIND, то Вы должны включить контроль спуфинга в Вашем файле host.conf. Подробно это рассмотрено в главе 6.