LXF105:Стань гуру LDAP
(Новая: : '''Hardcore Linux''' Проверь себя на проекте для продвинутых пользователей Категория:Учебники ==''LDAP'': /home в...) |
(→''LDAP'': /home виден из далека) |
||
Строка 4: | Строка 4: | ||
: '''Д-р Крис Браун''' предоставит доступ к вашей домашней директории из любого места/офиса на Земле с помощью ''LDAP''-аутентификации из прошлой статьи. | : '''Д-р Крис Браун''' предоставит доступ к вашей домашней директории из любого места/офиса на Земле с помощью ''LDAP''-аутентификации из прошлой статьи. | ||
+ | |||
+ | Пусть это выдает мой возраст, но я привык к работе в настоящем офисе с настоящей дверью и реальной грудой моих вещей на полу. Дверь, возможно, была важнее всего, так как я мог почесаться или позволить себе отрыжку, не оскорбляя | ||
+ | ничьих чувств; но и груды вещей были тоже важны – они питали мое сознание личной уникальности, а также иллюзию, что я и вправду | ||
+ | работаю. | ||
+ | |||
+ | {{Врезка|Содержание=[[Изображение:LXF105_83_1.jpg|Рис. 1]] Рис. 1. Вот эту схему мы и попытаемся реализовать. |Ширина=300px}} | ||
+ | |||
+ | Ныне в порядке вещей стал «hotdesking» – один из гнусных терминов, придуманных для описания практики предоставления рабочего | ||
+ | пространства, не привязанного к конкретному работнику. С технической точки зрения, ноутбуки, беспроводные сети и мобильные телефоны сделали «hotdesking» чрезвычайно легким. Тем не менее иногда бывает по-прежнему нужно обеспечить работу с компьютером, не привязывая к нему пользователей, и на нашем уроке мы увидим, как легко создать такое окружение в Linux. | ||
+ | |||
+ | Идея заключается в хранении всех специфических данных пользователя на центральном сервере, а не на индивидуальной рабочей станции. Короче, вот что мы хотим сделать: | ||
+ | # Установить файловый сервер ''NFS'' для домашних директорий наших пользователей. | ||
+ | # Настроить наши рабочие станции для автомонтирования домашних каталогов по требованию. | ||
+ | # Установить сервер ''LDAP'' и добавить туда учетные записи наших пользователей (большую часть этого мы сделали в прошлом месяце). | ||
+ | # Настроить рабочие станции на использование сервера ''LDAP'' для информации об учетных записях пользователей и аутентификации. | ||
+ | |||
+ | Этот урок будет шире, чем обычно. Мы переберем несколько различных технологий – ''NFS, LDAP, Automounter'', даже немного коснемся скриптов оболочки. Рис. 1 на соседней странице изображает все в детялях. | ||
+ | |||
+ | ===Настройка сервера ''NFS''=== | ||
+ | |||
+ | Я использую на сервере CentOS 5 (клон RHEL 5), но сгодится любой | ||
+ | современный дистрибутив. Первым делом надо проверить, что ''NFS'' уже | ||
+ | установлен, с помощью команд | ||
+ | |||
+ | # rpm -qa | grep nfs | ||
+ | nfs-utils-lib-1.0.8-7.2 | ||
+ | nfs-utils-1.0.9-16.el5 | ||
+ | |||
+ | Сервер ''NFS'' очень легко настроить. Его файл конфигурации – '''/etc/exports'''., здесь задается, какие части файловой системы сервера должны быть доступны и каким клиентам. Для наших сегодняшних целей | ||
+ | я хочу экспортировать директорию '''/home''' (место «обитания» домашних директорий пользователей) на все машины локальной сети, которая имеет IP-адрес 192.168.0.0. Для этого мне надо поместить в '''/etc/exports''' следующую строчку: | ||
+ | |||
+ | /home 192.168.0.0/24(rw) | ||
+ | |||
+ | Опция ('''rw''') очень важна. Без нее файловая система экспортируется | ||
+ | в режиме «только для чтения». | ||
+ | |||
+ | Далее я запустил сервер ''NFS''. Так как моя система – близнец Red-Hat, можно использовать для этого маленький скрипт | ||
+ | RHEL – service: | ||
+ | |||
+ | # service nfs start | ||
+ | |||
+ | Наконец, чтобы обеспечить старт ''NFS'' при запуске системы, я запустил команду | ||
+ | |||
+ | # chkconfig nfs on | ||
+ | |||
+ | Вот и все, что надо было сделать! | ||
+ | |||
+ | ===Настройка клиента ''NFS''=== | ||
+ | |||
+ | На этом этапе хорошо бы протестировать сервер ''NFS'', попытавшись | ||
+ | смонтировать его файловую систему '''/home''' на свои клиенты. На них | ||
+ | я буду использовать OpenSUSE 10.3, но снова отмечу, что различия у | ||
+ | всех дистрибутивов невелики. На случайно выбранном клиенте я попытался выполнить монтирование «вручную» так: | ||
+ | |||
+ | # mount 192.168.0.41:/home /home | ||
+ | |||
+ | Здесь стоит отметить несколько моментов. Во-первых, 192.168.0.41 – | ||
+ | это IP-адрес моего сервера ''NFS''. Вы можете использовать здесь имя | ||
+ | машины (если, конечно, оно разрешимо), но я предпочитаю вводить | ||
+ | IP-адрес. Во-вторых, я монтирую в '''/home''', так что моя директория | ||
+ | будет доступна как '''/home''' и на сервере, и на клиенте. Вы не обязаны | ||
+ | поступать так же; базовая схема предполагает помещать директории | ||
+ | пользователей в '''/exports''' на сервере и монтировать их в '''/home''' на рабочих станциях. | ||
+ | |||
+ | При успехе монтирования вы должны иметь возможность доступа к | ||
+ | '''/home''' на клиенте, как если бы вы сидели за сервером (на данном этапе, | ||
+ | конечно, '''/home''' на сервере пока пуста). | ||
+ | |||
+ | Чтобы сделать это монтирование постоянным (то есть обеспечить | ||
+ | повторное монтирование при загрузке), нужна строка в /etc/fstab типа | ||
+ | этой: | ||
+ | 192.168.0.41:/home /home nfs hard,intr 0 0 | ||
+ | Будьте осторожны при редактировании этого файла – если вы | ||
+ | повредите существующие строки, ваша система может перестать пра- | ||
+ | вильно загружаться! | ||
+ | Такая организация постоянного монтирования /home с сервера в | ||
+ | /home на всех клиентах – одна из простейших возможных схем. Ей не | ||
+ | хватает гибкости: например, предполагается, что все пользовательские | ||
+ | директории находятся на одном и том же сервере, и все домашние | ||
+ | директории пользователей доступны для всех клиентов, независимо | ||
+ | от того, кто на самом деле вошел в систему. Позднее на этом уроке мы | ||
+ | установим Automounter, предлагающий более гибкое решение. | ||
+ | Настраиваем сервер LDAP | ||
+ | Теперь переключим внимание на сервер LDAP. Я решил использовать | ||
+ | один и тот же компьютер для LDAP и NFS, но в загруженной сети, вы, | ||
+ | возможно, захотите использовать две отдельные машины. | ||
+ | На прошлом уроке мы рассмотрели создание сервера LDAP, и я | ||
+ | показал, как добавить учетную запись пользователя вручную, редак- | ||
+ | тируя LDIF-файл, и как добавить ее в каталог с помощью ldapadd. Мы | ||
+ | рассмотрели также Lat (графический инструмент управления LDAP), | ||
+ | как способ просмотра каталога LDAP. Вы можете использовать Lat | ||
+ | еще и для добавления и изменения пользователей и групп в LDAP, как | ||
+ | показано на рис. 2 (на обороте). Но создание учетной записи пользо- | ||
+ | вателя – это не просто добавление записи в LDAP: нам нужно создать | ||
+ | домашнюю директорию и установить ей владельца и права, включить | ||
+ | пользователя в основную группу и присвоить ему уникальный UID. Это | ||
+ | оказалось сложнее, чем я думал: мне даже пришлось писать неболь- | ||
+ | шой shell-скрипт. Но мы не боимся трудностей – мы здесь все взрос- | ||
+ | лые, верно? | ||
+ | Мой скрипт (addldapuser) делает следующее: | ||
+ | 1 Запускает программу useradd для добавления аккаунта в /etc/ | ||
+ | passwd, создания домашней директории и т.п. | ||
+ | 2 Конвертирует новую созданную запись /etc/passwd в файл LDIF. | ||
+ | 3 Запускает команду ldapadd для добавления записи в файл LDIF, | ||
+ | который мы только что создали в директории LDAP. | ||
+ | 4 Устанавливает пароль для пользователя. | ||
+ | Вот этот скрипт. Нумерация строк нужна только для ссылок на них – | ||
+ | в файле их быть не должно: | ||
+ | 1 useradd -m $1 | ||
+ | 2 grep $1 /etc/passwd > newuser.in | ||
+ | 3 grep $1 /etc/group > newgroup.in | ||
+ | 4 /usr/share/openldap/migration/migrate_passwd.pl newuser.in > | ||
+ | newuser.ldif | ||
+ | 5 ldapadd -x -D “cn=admin,dc=example,dc=com” -y /etc/ | ||
+ | openldap/ldap_passwd -W -f newuser.ldif | ||
+ | 6 /usr/share/openldap/migration/migrate_group.pl newgroup.in > | ||
+ | newgroup.ldif | ||
+ | 7 ldapadd -x -D “cn=admin,dc=example,dc=com” -y /etc/ | ||
+ | openldap/ldap_passwd -W -f newgroup.ldif | ||
+ | 8 ldappasswd -x -S -D “cn=admin,dc=example,dc=com” -y /etc/ | ||
+ | openldap/ldap_passwd “uid=$1,ou=users,dc=example,dc=com” | ||
+ | Строка 1 в скрипте добавляет учетную запись пользователя на | ||
+ | сервер. Создается домашняя директория, и начальный набор файлов | ||
+ | копируется в нее из /etc/skel. $1 – ссылка на первый аргумент, переда- |
Версия 09:05, 28 апреля 2009
|
|
|
- Hardcore Linux Проверь себя на проекте для продвинутых пользователей
LDAP: /home виден из далека
- Д-р Крис Браун предоставит доступ к вашей домашней директории из любого места/офиса на Земле с помощью LDAP-аутентификации из прошлой статьи.
Пусть это выдает мой возраст, но я привык к работе в настоящем офисе с настоящей дверью и реальной грудой моих вещей на полу. Дверь, возможно, была важнее всего, так как я мог почесаться или позволить себе отрыжку, не оскорбляя ничьих чувств; но и груды вещей были тоже важны – они питали мое сознание личной уникальности, а также иллюзию, что я и вправду работаю.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Ныне в порядке вещей стал «hotdesking» – один из гнусных терминов, придуманных для описания практики предоставления рабочего пространства, не привязанного к конкретному работнику. С технической точки зрения, ноутбуки, беспроводные сети и мобильные телефоны сделали «hotdesking» чрезвычайно легким. Тем не менее иногда бывает по-прежнему нужно обеспечить работу с компьютером, не привязывая к нему пользователей, и на нашем уроке мы увидим, как легко создать такое окружение в Linux.
Идея заключается в хранении всех специфических данных пользователя на центральном сервере, а не на индивидуальной рабочей станции. Короче, вот что мы хотим сделать:
- Установить файловый сервер NFS для домашних директорий наших пользователей.
- Настроить наши рабочие станции для автомонтирования домашних каталогов по требованию.
- Установить сервер LDAP и добавить туда учетные записи наших пользователей (большую часть этого мы сделали в прошлом месяце).
- Настроить рабочие станции на использование сервера LDAP для информации об учетных записях пользователей и аутентификации.
Этот урок будет шире, чем обычно. Мы переберем несколько различных технологий – NFS, LDAP, Automounter, даже немного коснемся скриптов оболочки. Рис. 1 на соседней странице изображает все в детялях.
Настройка сервера NFS
Я использую на сервере CentOS 5 (клон RHEL 5), но сгодится любой современный дистрибутив. Первым делом надо проверить, что NFS уже установлен, с помощью команд
# rpm -qa | grep nfs nfs-utils-lib-1.0.8-7.2 nfs-utils-1.0.9-16.el5
Сервер NFS очень легко настроить. Его файл конфигурации – /etc/exports., здесь задается, какие части файловой системы сервера должны быть доступны и каким клиентам. Для наших сегодняшних целей я хочу экспортировать директорию /home (место «обитания» домашних директорий пользователей) на все машины локальной сети, которая имеет IP-адрес 192.168.0.0. Для этого мне надо поместить в /etc/exports следующую строчку:
/home 192.168.0.0/24(rw)
Опция (rw) очень важна. Без нее файловая система экспортируется в режиме «только для чтения».
Далее я запустил сервер NFS. Так как моя система – близнец Red-Hat, можно использовать для этого маленький скрипт RHEL – service:
# service nfs start
Наконец, чтобы обеспечить старт NFS при запуске системы, я запустил команду
# chkconfig nfs on
Вот и все, что надо было сделать!
Настройка клиента NFS
На этом этапе хорошо бы протестировать сервер NFS, попытавшись смонтировать его файловую систему /home на свои клиенты. На них я буду использовать OpenSUSE 10.3, но снова отмечу, что различия у всех дистрибутивов невелики. На случайно выбранном клиенте я попытался выполнить монтирование «вручную» так:
# mount 192.168.0.41:/home /home
Здесь стоит отметить несколько моментов. Во-первых, 192.168.0.41 – это IP-адрес моего сервера NFS. Вы можете использовать здесь имя машины (если, конечно, оно разрешимо), но я предпочитаю вводить IP-адрес. Во-вторых, я монтирую в /home, так что моя директория будет доступна как /home и на сервере, и на клиенте. Вы не обязаны поступать так же; базовая схема предполагает помещать директории пользователей в /exports на сервере и монтировать их в /home на рабочих станциях.
При успехе монтирования вы должны иметь возможность доступа к /home на клиенте, как если бы вы сидели за сервером (на данном этапе, конечно, /home на сервере пока пуста).
Чтобы сделать это монтирование постоянным (то есть обеспечить
повторное монтирование при загрузке), нужна строка в /etc/fstab типа этой:
192.168.0.41:/home /home nfs hard,intr 0 0 Будьте осторожны при редактировании этого файла – если вы
повредите существующие строки, ваша система может перестать пра- вильно загружаться!
Такая организация постоянного монтирования /home с сервера в
/home на всех клиентах – одна из простейших возможных схем. Ей не хватает гибкости: например, предполагается, что все пользовательские директории находятся на одном и том же сервере, и все домашние директории пользователей доступны для всех клиентов, независимо от того, кто на самом деле вошел в систему. Позднее на этом уроке мы установим Automounter, предлагающий более гибкое решение. Настраиваем сервер LDAP Теперь переключим внимание на сервер LDAP. Я решил использовать один и тот же компьютер для LDAP и NFS, но в загруженной сети, вы, возможно, захотите использовать две отдельные машины.
На прошлом уроке мы рассмотрели создание сервера LDAP, и я
показал, как добавить учетную запись пользователя вручную, редак- тируя LDIF-файл, и как добавить ее в каталог с помощью ldapadd. Мы рассмотрели также Lat (графический инструмент управления LDAP), как способ просмотра каталога LDAP. Вы можете использовать Lat еще и для добавления и изменения пользователей и групп в LDAP, как показано на рис. 2 (на обороте). Но создание учетной записи пользо- вателя – это не просто добавление записи в LDAP: нам нужно создать домашнюю директорию и установить ей владельца и права, включить пользователя в основную группу и присвоить ему уникальный UID. Это оказалось сложнее, чем я думал: мне даже пришлось писать неболь- шой shell-скрипт. Но мы не боимся трудностей – мы здесь все взрос- лые, верно?
Мой скрипт (addldapuser) делает следующее: 1 Запускает программу useradd для добавления аккаунта в /etc/
passwd, создания домашней директории и т.п.
2 Конвертирует новую созданную запись /etc/passwd в файл LDIF. 3 Запускает команду ldapadd для добавления записи в файл LDIF,
который мы только что создали в директории LDAP.
4 Устанавливает пароль для пользователя. Вот этот скрипт. Нумерация строк нужна только для ссылок на них –
в файле их быть не должно:
1 useradd -m $1 2 grep $1 /etc/passwd > newuser.in 3 grep $1 /etc/group > newgroup.in 4 /usr/share/openldap/migration/migrate_passwd.pl newuser.in > newuser.ldif 5 ldapadd -x -D “cn=admin,dc=example,dc=com” -y /etc/ openldap/ldap_passwd -W -f newuser.ldif 6 /usr/share/openldap/migration/migrate_group.pl newgroup.in > newgroup.ldif 7 ldapadd -x -D “cn=admin,dc=example,dc=com” -y /etc/ openldap/ldap_passwd -W -f newgroup.ldif 8 ldappasswd -x -S -D “cn=admin,dc=example,dc=com” -y /etc/ openldap/ldap_passwd “uid=$1,ou=users,dc=example,dc=com” Строка 1 в скрипте добавляет учетную запись пользователя на
сервер. Создается домашняя директория, и начальный набор файлов копируется в нее из /etc/skel. $1 – ссылка на первый аргумент, переда-