Новые книги

Сегодня многие маркетологи осознают необратимость изменений, происходящих в маркетинговой среде, и необходимость поиска новых путей и методов привлечения и удержания потребителей. Написанная живым и понятным языком, эта книга рассказывает о том, как, комбинируя инструменты прицельного и массового маркетинга, можно сократить маркетинговые расходы компании, повысить окупаемость маркетинговых инвестиций и добиться неоспоримого конкурентного преимущества на рынке. Всесторонние исследования и личный опыт авторов помогли создать яркую картину новых маркетинговых отношений, позволяющих компаниям донести емкие, четкие и «прицельные» маркетинговые послания до потребителя, действительно расположенного к их восприятию.

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

В книге Бертрана Мейера рассматриваются основы объектно-ориентированного программирования. Изложение начинается с рассмотрения критериев качества программных систем и обоснования того, как объектная технология разработки может обеспечить требуемое качество. Основные понятия объектной технологии и соответствующая нотация появляются как результат тщательного анализа и обсуждений. Подробно рассматривается понятие класса - центральное понятие объектной технологии. Рассматривается абстрактный тип данных, лежащий в основе класса, совмещение классом роли типа данных и модуля и другие аспекты построения класса. Столь же подробно рассматриваются объекты и проблемы управления памятью. Большая часть книги уделена отношениям между классами – наследованию, универсализации и их роли в построении программных систем. Важную часть книги составляет введение понятия контракта, описание технологии проектирования по контракту, как механизма, обеспечивающего корректность создаваемых программ. Не обойдены вниманием и другие важные темы объектного программирования – скрытие информации, статическая типизация, динамическое связывание и обработка исключений. Глубина охвата рассматриваемых тем делает книгу Бертрана Мейера незаменимой для понимания основ объектного программирования.

Using the passwd and group Maps

Использование карт passwd и group

Одна из главных прикладных программ NIS синхронизирует данные пользователя на всех машинах в домене NIS. Следовательно, Вы обычно храните только маленький локальный файл /etc/passwd, к которому добавляется информация из карт NIS. Однако, просто поиска NIS для этого сервиса в nsswitch.conf мало.

При доверии к информации о паролях, распределенной NIS, Вы сначала должны удостовериться, что числовые идентификаторы пользователей в локальном файле passwd соответствуют представлениям сервера NIS по этому вопросу. Непротиворечивость важна и для других целей, подобно установке NFS.

Если любой из числовых идентификаторов в /etc/passwd или /etc/group отличается от своего значения в картах, надо исправлять ситуацию с правами доступа. Сначала Вы должны изменить все uid и gid в файлах passwd и group на новые значения, затем поменять владельцев у объектов, принадлежащих пользователям, идентификаторы которых Вы сменили. Допустим, news имеет идентификатор 9, а okir имел идентификатор (user ID) 103, но теперь он сменился на что-то другое. Скомандуйте от имени root:

# find / -uid 9 -print >/tmp/uid.9
# find / -uid 103 -print >/tmp/uid.103
# cat /tmp/uid.9 | xargs chown news
# cat /tmp/uid.103 | xargs chown okir

Важно выполнить эти команды при установленном новом файле passwd, и собрать все имена файлов перед сменой их владельца. Чтобы модифицировать группу владельца, используйте подобный метод с gid вместо uid и chgrp вместо chown.

Теперь числовые идентификаторы на Вашей машине приведены в соответствие с остальной сетью. Следующим шагом надо добавить строки в nsswitch.conf, которые поиск через NIS данных о пользователе и группе:

# /etc/nsswitch.conf - passwd and group treatment
passwd: nis files
group: nis files

Это воздействует на команду login и все остальные, которые собирают данные о пользователе. Когда пользователь пробует войти, login сначала запрашивает карту NIS, и в случае провала идет обратно к локальным файлам. Обычно Вы удаляете почти всех пользователей из локальных файлов и оставляете входы только для root и универсальные логины, подобно mail. Это потому, что некоторым жизненным задачам системы, вероятно, придется отображать uid к именам. Например, административные работы cron могут выполнить команду su, чтобы временно стать пользователем news, или подсистема UUCP может послать отчет о состоянии. Если news и uucp не имеют записей в локальном файле passwd, эти работы будут терпеть неудачу.

Наконец, если Вы используете любую старую реализацию NIS (поддерживаются режимом compat для файлов passwd и group в реализациях NYS или glibc), Вы должны вставить специальные записи. Они представляют, где полученные записи NIS будут вставлены в базу данных информации. Они могут добавляться в любом месте, но обычно добавляются только к концу. Записи для добавления к файлу /etc/passwd:

+::::::
и для добавления к файлу /etc/groups:
+:::

В glibc 2.x и NYS Вы можете отменять параметры в пользовательских записях, полученных от сервера NIS созданием записей со знаком "+" перед именем пользователя и исключать указанных пользователей добавлением перед их именами знака "-". Например, записи:

+stuart::::::/bin/jacl
-jedd::::::
переопределят оболочку для пользователя stuart, заданную сервером, и запретят пользователю jedd регистрацию на данной машине вообще. Пустые поля используют информацию с сервера NIS.

Еть две проблемы. Во-первых, приведенная здесь настройка не использует затенение паролей, а стоило бы. Сложность использования теневых паролей с NIS обсуждается ниже. Во-вторых, команда login не единственная, которой нужен файл passwd: есть часто используемая команда ls. При построении широкого вывода она отображает имена владельца файла и его группы. Значит, для каждого uid и gid будет послан запрос на сервер NIS. Это снижает производительность.

Но представим, что пользователь решил сменить пароль. Обычно он вызывает команду passwd, которая читает новый пароль и обновляет локальный файл passwd. Это невозможно с NIS, так как этот файл больше не доступен локально. NIS обеспечивает замену passwd по имени yppasswd, которая обрабатывает смену пароля через NIS. Для изменения пароля на сервере эта утилита связывается с yppasswdd daemon на сервере по RPC и передает ему требуемую информацию. Обычно Вы устанавливаете yppasswd вместо нормальной программы:

# cd /bin
# mv passwd passwd.old
# ln yppasswd passwd

В то же самое время, Вы должны установить rpc.yppasswdd на сервере и запускать его из скрипта для инициализации сети.