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 – ссылка на первый аргумент, переда-

