Все о Linux. LinuxRSP.Ru


Cвежие новости Linux и BSD, анонсы статей и книг прямо в почтовый ящик!
Подписаться письмом


 Сегодняшние новости:

Почтовый клиент Trojita 0.7

Состоялся релиз открытой аппаратной платформы icoBoard 1.0

Релиз компилятора SDCC 3.6.0

Релиз Qt 5.7.0 и Qt Creator 4.0.2

Первый релиз Nextcloud, форка ownCloud

Релиз LibreCAD 2.1.0. Команде разработчиков нужна помощь!

Релиз SolveSpace 2.1

xterm 325

До конца года состоится выход российских смартфонов на ОС Sailfish

Duktape 1.5.0 - встраиваемый движок JavaScript

FreeBSD доступна в Azure Marketplace

Программа PyCon Russia 2016 готова

Perl 5.22.0

Релиз FastNetMon1.1.2 - открытого решения для мониторинга DoS/DDoS атак

xCube - светодиодная платформа за 37 долларов

Hg/Mercurial 3.4

Релиз Jython 2.7.0

Релиз OpenBSD 5.7

Вышел Stellarium 0.13.3

Google

 Новые статьи :

Утилиты для восстановления потерянных данных в Linux

Лучшие файловые менеджеры для Android

20 лучших бесплатных книг о Linux

Как сгенерировать открытый/закрытый SSH-ключ в Linux

Grive - клиент Google Drive для Linux с открытым исходным кодом

Протокол IPv6: варианты подключения

Сервер из образа: DHCP + TFTP + Initrd + OpenVZ

Обзор веб-панелей управления хостингом

Приёмы работы с Vim

Nginx как Reverse Proxy для сайта, использующего SSL

Разработка модулей ядра Linux

Мониторинг нагрузки http-сервера Apache 2

Перевод комментариев к файлу конфигурации Squid

Решение проблем при использовании "1c предприятие" 8.2 в Linux

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки







Rambler's Top100





 
 

Входим в Линукс под учетной записью из NT-домена.

1. Содержание задачи.
2. Отказ от ответственности.
3. Варианты решения и что для этого нужно.
    3.1. Метод с использованием модуля pam_smb.
    3.2. Метод с использованием утилиты winbind.
    3.3. Сравнение описанных методов.
       3.3.1. Метод с модулем pam_smb.
       3.3.2. Метод с утилитой winbind.
4. Что делаем.
    4.1. Для варианта с pam_smb.
       4.1.1. Правим /etc/pam_smb.conf
       4.1.2. Правим конфигурационные файлы PAM.
       4.1.3. Добавление учетной записи в /etc/passwd.
       4.1.4. Попытка авторизации.
    4.2. Для варианта с winbind.
        4.2.1. Правим smb.conf.
        4.2.2. Правим конфигурационные файлы PAM.
        4.2.3. Внесение изменений в файл /etc/nsswitch.conf
        4.2.4. Перезапуск (запуск) сервисов smb и winbind.
        4.2.5. Присоединение компьютера к Windows NT домену.
        4.2.6. Попытка авторизации.
5. Использованные документы.
6. Авторство.

1. Содержание задачи.
Имеется сеть, организованная в Windows NT домен (для определенности, с именем FIRST). Так же имеется PDC (Primary Domain Controller), именуемый main. Установив на один (или несколько) компьютеров сети ОС Linux, мы хотим, чтобы пользователи входили в Линукс под учетными записями, которые хранятся на PDC. Объяснять для чего это нужно я в этой статье не берусь.

2. Отказ от ответственности.
Все описанное ниже, представляет собой лишь последовательность моих действий и ни в коем случае не претендует на полноту и исключительность. Нет ни какой гарантии, что у Вас все будет работать точно так же как и у меня, поэтому вся ответственность, за выполняемые Вами действия, возлагается только на Вас и никого более. Я лишь могу гарантировать, что описанная ниже конфигурация работает на моей машине с ОС ASPLinux 7.2, которая изрядно мной изменена (так же описанная последовательность действий проверена на ASPLinux 7.3 сразу после установки).

3. Варианты решения и что для этого нужно.
Для решения поставленной задачи можно воспользоваться двумя методами. Выбор какого-то конкретного метода зависит от Ваших задач и предпочтений.

3.1. Метод с использованием модуля pam_smb.
При использовании данного метода необходим PAM-модуль (Pluggable Authentication Modules), который можно установить как из RPM-пакета (в моем случае pam_smb-1.1.6), так и собрав его вручную из исходных текстов. Исходные тексты можно найти pamsmb.sourceforge.net.

3.2. Метод с использованием утилиты winbind.
В данном случае будет необходим пакет Samba (www.samba.org). Что касается меня, то я использовал RPM-пакеты, входящие в дистрибутив ASPLinux 7.3 (это samba-2.2.3a, samba-common-2.2.3a и samba-client-2.2.3a). Если Вы будете собирать пакет Samba из исходников самостоятельно, то Вам необходимо включить утилиту winbind, а так же поддержку PAM.

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

3.3.1. Метод с модулем pam_smb.
Преимущества:

  • прост в реализации;
  • не требует запуска различных ?демонов?;
  • учетная запись пользователя имеет такой же вид как в NT-домене.
Недостатки:
  • при наличии большого количества пользователей домена, которые работают на одном и том же компьютере, Вам придется вести учетные записи этих пользователей вручную.

3.3.2. Метод с утилитой winbind.
Преимущества:

  • лишен недостатка, возникающего при большом количестве пользователей;
  • позволяет разрешать сетевые имена компьютеров (NetBIOS-имена).
Недостатки:
  • сравнительная сложность настройки;
  • необходим запущенный ?демон? - winbind;
  • к учетной записи добавляется еще наименование домена (удлинение имени учетной записи).

4. Что делаем.

4.1. Для варианта с pam_smb.

4.1.1. Правим /etc/pam_smb.conf.
Файл /etc/pam_smb.conf содержит три строки: в первой строке указывается имя домена, в котором предполагается производить авторизацию, вторая и третья имена PDC и SDC (Secondary Domain Controller) соответственно. В нашем случае этот файл должен выглядеть следующим образом:
----- start file -----
FIRST
main

------ end file ------


Внимание: В данном файле нет комментариев! В нем должно содержаться только три строки!

4.1.2. Правим конфигурационные файлы PAM.
Данные файлы храняться в /etc/pam.d/. Имя файла конфигурации похоже или прямо соответствует приложению, к которому данная конфигурация относится. В моем случае, т.к. я использую для авторизации KDM (KDE Display Manager), я правил файл /etc/pam.d/kde. Вносим следующие изменения:

  • Заменяем группу модулей с типом auth на:

    auth required /lib/security/pam_securetty.so
    auth required /lib/security/pam_smb_auth.so
    auth required/lib/security/pam_nologin.so

  • Заменяем группу модулей с типом account на:

    account required /lib/security/pam_pwdb.so

  • Заменяем группу модулей с типом password на:

    password required /lib/security/pam_pwdb.so shadow nullok use_authtok

  • Заменяем группу модулей с типом session на:

    session required /lib/security/pam_mkhomedir.so skel=/etc/skel/ umask=0077
    session required /lib/security/pam_pwdb.so
    session optional /lib/security/pam_console.so

4.1.3. Добавление учетной записи в /etc/passwd.
Для использования данного механизма авторизации Вам необходимо добавить в файл /etc/passwd учетную запись, аналогичную учетной записис Windows NT домена (можно воспользоваться командой adduser). При этом Вы должны задать все необходимые атрибуты (домашний каталог, группу, оболочку (shell) и т.п.). Пароль указывать нет необходимости, поскольку он будет сверяться с информацией храняшейся на сервере домена.

4.1.4. Попытка авторизации.
В моем случае, перезапустив KDM, в строке login я ввожу sloth (где sloth - моя учетная запись). В поле password, ввожу пароль, соответсвующий моей учетной записи в Windows NT домене. Так же Вы можете авторизироваться под учетной записью, которая является локальной (не входящей в Windows NT домен), под любой, кроме учетной записи root.

4.2. Для варианта с winbind.

4.2.1. Правим smb.conf.
У меня данный файл находится /etc/samba/smb.conf. Могу предположить, что у Вас он находится там же. В этот файл вносим следующие изменения и дополнения:

winbind separator = +
template shell = /bin/bash
template homedir = /home/%U
winbind uid = 10000-20000
winbind gid = 10000-20000


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

workgroup = FIRST ; Имя нашего домена
security = domain
password server = main ; Имя PDC, предварительно внесенное в файл /etc/samba/lmhosts
encrypt passwords =yes


Все остальные параметры были оставлены по умолчанию.

4.2.2. Правим конфигурационные файлы PAM.
Данные файлы храняться в /etc/pam.d/. Имя файла конфигурации похоже или прямо соответствует приложению, к которому данная конфигурация относится. В моем случае, т.к. я использую для авторизации KDM (KDE Display Manager), я правил файл /etc/pam.d/kde. Вносим следующие изменения:

  • Заменяем группу модулей с типом auth на:

    auth required /lib/security/pam_securetty.so
    auth required/lib/security/pam_nologin.so
    auth sufficient /lib/security/pam_winbind.so
    auth required /lib/security/pam_pwdb.so use_first_pass shadow nullok

  • Заменяем группу модулей с типом account на:

    account required /lib/security/pam_winbind.so

  • Заменяем группу модулей с типом password на:

    password required /lib/security/pam_winbind.so

  • Заменяем группу модулей с типом session на:

    session required /lib/security/pam_stack.so service=system-auth
    session required /lib/security/pam_mkhomedir.so skel=/etc/skel/ umask=0077
    session required /lib/security/pam_pwdb.so
    session optional /lib/security/pam_console.so

4.2.3. Внесение изменений в файл /etc/nsswitch.conf
Добавляем слово winbind в следующие строки:

passwd: files winbind
group: files winbind

4.2.4. Перезапуск (запуск) сервисов smb и winbind.
Для перезапуска отконфигурированных сервисов выполняем из под пользователя root:
# /etc/init.d/smb restart
# /etc/init.d/winbind restart

Если при останове сервисов возникли ошибки, то значит, скорее всего, они не были запущены. Чтобы сервисы запускались при загрузке компьютера необходимо добавить символьные ссылки в /etc/rc.d/rcX.d/, где X - соответсвует Вашему уровню запуска (в моем случае это 5). Перейдя в /etc/rc.d/rc5.d/ я выполняю следующие действия:
# ln -s ../init.d/smb S91smb
# ln -s ../init.d/winbind S91winbind

Данные действия выполняются с правами пользователя root.

4.2.5. Присоединение компьютера к Windows NT домену.
Выполняем следующую команду с правами root:
# smbpasswd -j FIRST -r main -U Administrator
После ключа -U указывается имя пользователя, обладающего правами администратора домена. Выполнение данной команды должно закончиться сообщением:
Joined domain FIRST.
Для проверки успешности наших действий можно запустить команду:
# wbinfo -t
Которая, при удачном выполнении, должна выдать:
Secret is good

4.2.6. Попытка авторизации.
В моем случае, перезапустив KDM, в строке login я ввожу FIRST+sloth (где FIRST - имя домена, + - разделитель, указанный в файле smb.conf, sloth - моя учетная запись, если Вы в качестве разделителя будете использовать другие символы, к примеру "\", то я рекомендую Вам в конфигурационном файле (smb.conf) указывать его в двойных кавычках). В поле password, ввожу пароль, соответсвующий моей учетной записи в Windows NT домене. Так же Вы можете авторизироваться под учетной записью, которая является локальной (информация о ней храниться на Вашем компьютере), под любой, кроме учетной записи root.

5. Использованные документы.
man 8 pam
man 8 winbind
man 1 wbinfo
man 5 smb.conf
man 8 smbpasswd

6. Авторство.
Автор: Федотов Алексей aka Sloth
EMail: sloth@email.ru
Версия: 0.2 (дополненная)
Все дополнения, предложения и исправления приветствуются, но только через почту.


Эта статья была прислана на конкурс статей.
При перепечатке ссылка на www.linuxrsp.ru обязательна.
      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2016 LinuxRSP