Jump to content
Sign in to follow this  
CAEman

Подключение Linux к WinServer c LDAPservice

Recommended Posts

А можно просто создать скрипт, не использующий winbindd, но обеспечивающий при вводе в регистрационном окне графического DM имени и пароля пользователя в случае отсутствия такого зарегистрированного локального пользователя сверку введённых имени и пароля с находящимся на win сервере списком и в случае их наличия и соответсвия, создание такого же (имя и пароль) локального пользователя с настройками по умолчанию для вновь создаваемых и его загрузку? Причём доступ к списку получать, например, при помощи Кербероса. Если нельзя, то в чём конкретно заключается загвоздка?

Share this post


Link to post
Share on other sites

Думаю, что такой скрипт на shell написать нельзя, поскольку в

результате должна получиться загружаемая библиотека с

соответствующим API. Но, написание таких модулей, к примеру на

Python, кажется, возможно.

Share this post


Link to post
Share on other sites

CAEman писал(а) Sat, 03 October 2009 15:47

А какого-нибудь образца или ссылки у Вас не найдётся случайно?

Хотя бв исходрники того же pam_winbind на www.samba.org

Share this post


Link to post
Share on other sites

Скачал я самбу. Есть там всякие pam_winbind.h, pam_winbind.c и др. Что конкретно мне теперь нужно делать (пошагово, если можно)?

Share this post


Link to post
Share on other sites

to CAEman:

Судя по названию, Вам нужны именно эти файлы.

Теперь нужно изучить C исходники на предмет, как они работают.

Только после этого можно приступать к адаптации их под свои

требования.

Но всё же перед тем, как приступать к такому непростому делу,

проверьте, работает ли всё, что Вам нужно через kinit. (Я имею

ввиду, получаете ли Вы доступ к нужным Вам вендовым рессурсам).

Share this post


Link to post
Share on other sites

kinit проходит (билет получаю)

Команда "net ads info" выдаёт следующее:

LDAP server: ххх.ххх.х.ххх

LDAP server name: server.domain

Realm: DOMAIN

Bind Path: dc=DOMAIN

LDAP port: 389

Server time: Sat, 03 Oct 2009 13:24:57 MSD

KDC server: ххх.ххх.х.ххх

Server time offset: -10

Всё в порядке?

Share this post


Link to post
Share on other sites

CAEman писал(а) Fri, 09 October 2009 19:00

kinit проходит (билет получаю)

Команда "net ads info" выдаёт следующее:

LDAP server: ххх.ххх.х.ххх

LDAP server name: server.domain

Realm: DOMAIN

Bind Path: dc=DOMAIN

LDAP port: 389

Server time: Sat, 03 Oct 2009 13:24:57 MSD

KDC server: ххх.ххх.х.ххх

Server time offset: -10

Всё в порядке?

Да, всё в порядке

Но это же не есть Ваша цель.

Попробуйте примонтировать windows ресурс. С аутентификацией либо через керберос (т.е после kinit):

mount.cifs -k //сервер/ресурс точка_монтирования

либо по ntlm (т.е без керберос)

mount.cifs //сервер/ресурс точка_монтирования -o user=... password=...

Пишу по памяти. Точный синтаксис смотрите в манах.

Share this post


Link to post
Share on other sites

Всё монтирует (только с опцией user). Причём, и когда winbind status running, и когда - dead (т.е. и при security=SERVER, и ADS).

Теперь можно приступить к изучению C исходников на предмет, как они работают, или ещё что нужно сделать (исправить)?

Share this post


Link to post
Share on other sites

CAEman писал(а) Fri, 16 October 2009 13:05

Всё монтирует (только с опцией user).

Если собираетесь монтировать с опцие user, то керберос Вам не нужен. Аутентификация будет по ntlm.

Цитата:

Причём, и когда winbind status running, и когда - dead (т.е. и при security=SERVER, и ADS).

Это нормально. winbind при этом не используется вовсе.

Цитата:

Теперь можно приступить к изучению C исходников на предмет, как они работают, или ещё что нужно сделать (исправить)?

Думаю, что уже можно. Причем переработка кода будет направлена в сторону удаления лишнего Smile

Share this post


Link to post
Share on other sites

Монтирование я собираюсь сделать автоматическое - при регистрации.

Если winbind.c содержит только #include "pam_winbind.h", то в pam_winbind.h имеются:

#include "../lib/replace/replace.h"

#include "system/syslog.h"

#include "system/time.h"

#include <talloc.h>

#include "libwbclient/wbclient.h"

#include "localedir.h"

#include <iniparser.h>

#include <libintl.h>

#include <security/pam_appl.h>

#include <pam/pam_appl.h>

#include <security/pam_modules.h>

#include <pam/pam_modules.h>

#include <security/_pam_macros.h>

#include <pam/_pam_macros.h>

#include <security/pam_ext.h>

#include "winbind_client.h"

По ним всем тоже нужно искать? И какие там ключевые слова могут определять членство (включение) комп-а в домене?

Кстати, а /etc/security/pam_winbind.conf в ручном редактировании не нуждается?

Share this post


Link to post
Share on other sites

CAEman писал(а) Fri, 16 October 2009 17:41

Монтирование я собираюсь сделать автоматическое - при регистрации.

Если winbind.c содержит только #include "pam_winbind.h", то в pam_winbind.h имеются:

#include "../lib/replace/replace.h"

#include "system/syslog.h"

#include "system/time.h"

#include <talloc.h>

#include "libwbclient/wbclient.h"

#include "localedir.h"

#include <iniparser.h>

#include <libintl.h>

#include <security/pam_appl.h>

#include <pam/pam_appl.h>

#include <security/pam_modules.h>

#include <pam/pam_modules.h>

#include <security/_pam_macros.h>

#include <pam/_pam_macros.h>

#include <security/pam_ext.h>

#include "winbind_client.h"

По ним всем тоже нужно искать? И какие там ключевые слова могут определять членство (включение) комп-а в домене?

Кстати, а /etc/security/pam_winbind.conf в ручном редактировании не нуждается?

Смотреть в первую очередь надо pam_winbind.c

Остальное, если будет в том нужда.

Начать надо с изучения того, как работает pam модуль. Какие функции и в какое время вызываются системой.

Также необходимо знать синтаксис и основные конструкции языка C.

вместо pam_winbind.conf Вы, скорее всего, бутете использовать свой собственный файл конфигурации.

Share this post


Link to post
Share on other sites

А Вы не знаете синтаксис и основные конструкции языка C достаточно хорошо, чтобы подсказать мне, что нужно искать?

Share this post


Link to post
Share on other sites

CAEman писал(а) Fri, 16 October 2009 20:44

А Вы не знаете синтаксис и основные конструкции языка C достаточно хорошо, чтобы подсказать мне, что нужно искать?

Перед тем, как что-то искать, нужно понять логику всей программы.

Разбираться с исходным текстом Вам придется самому. На форуме принято оказывать помощь в том случае, если Вы столкнулись с проблемами, решая задачу самостоятельно.

Для начала можно ознакомиться с основами создания pam модуля.

http://www.citforum.ru/operating_systems/articles/pam.shtml

PS. Если знание языка C Вам нужно только для этой задачи, то, может быть стоит ещё раз взвесить, оправдывает ли цель средства.

А в перспективе знание C может оказаться полезным. Он уже много лет является основным инструментом программистов. И, несмотря на появление многих интересных языков, достойной альтернативы ему в многих областях пока не видно.

Share this post


Link to post
Share on other sites

Решил до переделки исходников винбинда попробовать ограничиться керберосом.

Напоминаю решаемую задачу.

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

Имеем следующее.

Настроенный керберос, выдающий билеты (и mount.cifs, монтирующий ресурсы сервера по ntlm).

Проблемы следующие.

Даже при ЗАКОММЕНТИРОВАННЫХ "include"ах в файле login:

"

#%PAM-1.0

auth requisite pam_nologin.so

password requisite pam_pwcheck.so nullok

auth [user_unknown=ignore success=ok ignore=ignore auth_err=die default=bad] pam_securetty.so

password [default=ignore success=1] pam_succeed_if.so uid > 999 quiet

auth required pam_env.so

auth sufficient pam_unix2.so

password sufficient pam_unix2.so nullok

account sufficient pam_unix2.so

session optional pam_unix2.so

#auth include common-auth

#password include common-password

#account include common-account

#session include common-session

session required pam_loginuid.so

session required pam_lastlog.so nowtmp never

session required pam_limits.so

session optional pam_umask.so

session optional pam_mail.so standard

session optional pam_ck_connector.so

auth optional pam_warn.so

password optional pam_warn.so

"

при изменении стандартного содержания файлов на следующее:

common-account-pc -

"

...

#

account sufficient /lib64/security/pam_krb5.so

"

common-auth-pc -

"

...

#

auth sufficient /lib64/security/pam_krb5.so

"

common-password-pc -

"

...

#

password sufficient /lib64/security/pam_krb5.so

#password required pam_make.so /var/yp

"

common-session-pc -

"

...

#

session optional /lib64/security/pam_krb5.so

"

при попытке регистрации даже root'а выдаётся окно со следующим сообщением:

"Произошла критическая ошибка. Просмотрите журналы работы KDM или обратитесь к системному администратору"

без, естественно, последующего осуществления входа в систему.

Что-нибудь можете посоветовать?

Share this post


Link to post
Share on other sites

CAEman писал(а) Fri, 30 October 2009 18:02

Решил до переделки исходников винбинда попробовать ограничиться керберосом.

Напоминаю решаемую задачу.

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

Имеем следующее.

Настроенный керберос, выдающий билеты (и mount.cifs, монтирующий ресурсы сервера по ntlm).

Вам стоит определиться. Либо аутентификация kerbetos, либо ntlm. Windows сервер поддерживает и то, и другое, Вам достаточно выбрать одну. Если Вы собираетесь монтировать каталоги с ntlm аутентификацией (с указанием логина и пароля), то kerberos можно было и не устанавливать вовсе.

Цитата:

Проблемы следующие.

...

Для входа в систему с керберос аутентификацией в самом простом случае Вам нужно

1. Создать локального пользоватеся с тем же логином, что и в АД и без пароля.

2. Настроить pam_krb5, отредактировав файлы из /etc/pam.d примерно так:

файл common-auth

auth sufficient pam_unix.so nullok_secure

auth required pam_krb5.so minimum_uid=100 use_first_pass

файл common-account

account required pam_unix.so

account required pam_krb5.so minimum_uid=100

файл common-session

session required pam_unix.so

session required pam_krb5.so minimum_uid=100

файл common-session

password sufficient pam_krb5.so minimum_uid=100

password required pam_unix.so nullok obscure md5

Более точно прочитайтое в мане pam_krb5

Остальные файлы менять не стоит. Входить в систему, естественно, нужно не под рутом, а с тем же логином, который создали в п.1.

Под рутом при правильных настройках Вы, конечно, войдете, но керберос здесь не у дел.

Share this post


Link to post
Share on other sites

gogi писал(а) Fri, 30 October 2009 21:51

Вам стоит определиться. Либо аутентификация kerbetos, либо ntlm. Windows сервер поддерживает и то, и другое, Вам достаточно выбрать одну. Если Вы собираетесь монтировать каталоги с ntlm аутентификацией (с указанием логина и пароля), то kerberos можно было и не устанавливать вовсе.

Мне совершенно индеферентно, какой конкретно будет использоваться модуль для аутентификации, - лишь бы он (или несколько последовательно задействованных) мог обеспечить решение поставленной задачи (напоминание о которой в, на мой взгляд, недопускающей неоднозначной трактовки форме содержалось в использованной Вами в последнем сообщении цитате, но если Вы обнаружили там какую-либо двусмысленность, то укажите мне, пожалуйста, в чём именно она заключается).

Без указания логина и пароля mount.cifs ничего не монтирует даже после непосредственно перед этим полученного с помощью kinit билета.

pam_ntlm я не нашёл даже во всех сетевых репозиториях. Единственное, что там, может быть, имеет сходные функции - cyrus-sasl-ntlm (http://asg.web.cmu.edu/sasl/). Вы, случайно, не знаете, можно ли его использовать для поставленной задачи, и, если возможно, то - как конкретно?

Цитата:

Для входа в систему с керберос аутентификацией в самом простом случае Вам нужно

1. Создать локального пользоватеся с тем же логином, что и в АД и без пароля.

2. Настроить pam_krb5, отредактировав файлы из /etc/pam.d примерно так:

...

Входить в систему, естественно, нужно не под рутом, а с тем же логином, который создали в п.1.

Под рутом при правильных настройках Вы, конечно, войдете, но керберос здесь не у дел.

Пользователей в АД - тысяча.

Выбрать можно любого?

А остальные после этого смогут зайти под своим логином?

Спасибо за предоставленные образцы. Если ответ на последний вопрос будет положительным, то попробую их задействовать.

Share this post


Link to post
Share on other sites

CAEman писал(а) Fri, 06 November 2009 13:14

Мне совершенно индеферентно, какой конкретно будет использоваться модуль для аутентификации, - лишь бы он (или несколько последовательно задействованных) мог обеспечить решение поставленной задачи (напоминание о которой в, на мой взгляд, недопускающей неоднозначной трактовки форме содержалось в использованной Вами в последнем сообщении цитате, но если Вы обнаружили там какую-либо двусмысленность, то укажите мне, пожалуйста, в чём именно она заключается).

Двусмысленности я не обнаружил. Для решения этой задачи подойдет любая из двух схем аутентификации (kerberos и ntlm). Но выбор всё же за Вами. В случае керберос пароль посылается один раз при получении билета. При монтировании рессурса будет использоваться уже полученный билет.

ntlm проще. Он не требует установки и настройки керберос и большая часть того, что мы с Вами обсуждаем окажется излишней, но пароль придется передавать всякий раз при монтировании рессурса.

Цитата:

Без указания логина и пароля mount.cifs ничего не монтирует даже после непосредственно перед этим полученного с помощью kinit билета.

Значит либо вы неправильно монтируете (нужно указать опцию -k), либо что-то не правильно настроено.

Цитата:

pam_ntlm я не нашёл даже во всех сетевых репозиториях.

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

Цитата:

Единственное, что там, может быть, имеет сходные функции - cyrus-sasl-ntlm (http://asg.web.cmu.edu/sasl/). Вы, случайно, не знаете, можно ли его использовать для поставленной задачи, и, если возможно, то - как конкретно?

Нет. Он решает другие задачи.

Дальнейшее изложение касается только керберос

Цитата:

Пользователей в АД - тысяча.

Выбрать можно любого?

Да. Любого.

Цитата:

А остальные после этого смогут зайти под своим логином?

Какждому пользователю нужно будет получить свой билет у керберос АД.

Share this post


Link to post
Share on other sites

Скачал (http://sourceforge.net/projects/pamntlm/) на всякий случай pam_ntlm. Кстати, параллельно нашёл статью (http://www.opennet.ru/base/net/ad_postfix_auth.txt.html), где описывается использование sasl при проверке паролей пользователей на AD, правда для postfix (жаль, что, как Вы утверждаете, нельзя его использовать для логина новых пользователей, а то было бы как раз, что нужно).

Проштудировал мануал по mount.cifs, но опции -k не нашёл. Зато нашёл опцию sec=krb5 (или krb5i). При этом он использует не только что получившего по kinit билет пользователя сервера, а запрашивает пароль для залогиненного пользователя Линукса. В принципе, в дальнейшем, когда, я надеюсь, всё-таки удастся заставить Линукс создавать и загружать новых пользователей, идентичных логинищимся пользователям сервера, использование текущего пользователя будет оправданным (только вот лишний запрос пароля, конечно, не хотелось бы). Кстати, раньше, кажется, монтировался ресурс с указанием в виде //server/..., а теперь - //server.domain/..., или я ошибаюсь, и быть такого не могло?

Хочу добавить, что у меня в nsswitch.conf в данный момент практически везде стоит winbind. Это не помеха при текущем развитии дел?

И, если можно, уточнение по последнему пункту.

Значит, мне необходимо создать вручную одного локального пользователя с именем, совпадающим с таковым какого-либо пользователя сервера (меня, например), но без пароля. Затем, исправив текущее содержимое файлов на предоставленное Вами, я пытаюсь залогиниться, введя свои имя регистрации и пароль (с сервера, естественно). В случае удачи происходит стандартная первая загрузка данного пользователя, за исключением того, что ему устанавливается пароль с сервера, и система получает керберосовый билет. В дальнейшем этот пользователь будет уже стандартно логиниться, используя свой профиль, а любой впервые логинищийся на данном комп-е пользователь сервера теперь будет автоматически создаваться (в связи с этим возникает дополнительный вопрос: следует ли настроить керберос, чтобы срок действия билета был, например, многолетним?), получать свой билет и загружаться, а затем, кто не впервые - см. начало этого предложения.

Я всё правильно понял?

Share this post


Link to post
Share on other sites

CAEman писал(а) Sat, 07 November 2009 14:24

Скачал (http://sourceforge.net/projects/pamntlm/) на всякий случай pam_ntlm. Кстати, параллельно нашёл статью (http://www.opennet.ru/base/net/ad_postfix_auth.txt.html), где описывается использование sasl при проверке паролей пользователей на AD, правда для postfix (жаль, что, как Вы утверждаете, нельзя его использовать для логина новых пользователей, а то было бы как раз, что нужно).

Занявшись поиском информации и её осмыслением, Вы выбрали правильное направление. Но технология sasl в данном случае не применима. Через sasl postfix проводит аутентификацию в АД (т.е проверяет правильную ли пару логин - пароль ему передали).

Цитата:

Проштудировал мануал по mount.cifs, но опции -k не нашёл. Зато нашёл опцию sec=krb5 (или krb5i). При этом он использует не только что получившего по kinit билет пользователя сервера, а запрашивает пароль для залогиненного пользователя Линукса. В принципе, в дальнейшем, когда, я надеюсь, всё-таки удастся заставить Линукс создавать и загружать новых пользователей, идентичных логинищимся пользователям сервера, использование текущего пользователя будет оправданным (только вот лишний запрос пароля, конечно, не хотелось бы). Кстати, раньше, кажется, монтировался ресурс с указанием в виде //server/..., а теперь - //server.domain/..., или я ошибаюсь, и быть такого не могло?

Действительно, я ошибся. Опция -k относится к smbclient для доступа к ресурсам сервера через полученный билет.

У mount.cifs такой опции нет, но с недавних времён появилась та, о которой Вы пишете. Если Вам удалось таким образом примонтировать рессурс, то у вас достаточно свежее ядро.

//server.domain/ указывать придется, поскольку в керберос принято использовать полные имена.

Цитата:

Хочу добавить, что у меня в nsswitch.conf в данный момент практически везде стоит winbind. Это не помеха при текущем развитии дел?

При текущем развитии дел - это только излишняя библиотека для nsswitch, которая может замедлять процесс получения информации. Ведь на первом месте там стоит files или compat, что и является решающим.

Цитата:

И, если можно, уточнение по последнему пункту.

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

Пароль не устанавливается, а только проверяется, а билет действительно будет получен.

Цитата:

В дальнейшем этот пользователь будет уже стандартно логиниться, используя свой профиль,

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

Цитата:

а любой впервые логинищийся на данном комп-е пользователь сервера теперь будет автоматически создаваться

Автоматически создаваться никто не будет. Другой пользователь так же должен быть создал перед логином. Мне кажется, этот вопрос мы обсуждали, когда пришли к выводу, что придется писать собственный модуль аутентификации.

Цитата:

(в связи с этим возникает дополнительный вопрос: следует ли настроить керберос, чтобы срок действия билета был, например, многолетним?), получать свой билет и загружаться, а затем, кто не впервые - см. начало этого предложения.

Я всё правильно понял?

Нет, видимо я недостаточно ясно разъяснил.

Share this post


Link to post
Share on other sites

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

http://developer.novell.com/wiki/index.php/HOWTO:_Configure_ Ubuntu_for_Active_Directory_Authentication

https://help.ubuntu.com/community/ActiveDirectoryHowto

Если Вы установите и настроите libnss-ldap (pam_krb5 у Вас уже установлен и настроен), то Ваша задача будет решена без написания модуля. Но опять же, в том случае, если в АД её админ добавит линуксовые аттрибуты пользователей (uid, gid...)

Share this post


Link to post
Share on other sites

gogi писал(а) Sat, 07 November 2009 17:52

Занявшись поиском информации и её осмыслением, Вы выбрали правильное направление. Но технология sasl в данном случае не применима. Через sasl postfix проводит аутентификацию в АД (т.е проверяет правильную ли пару логин - пароль ему передали).

Так мне и нужна проверка правильности пары логин-пароль. В случае удачи какой-то модуль или скрипт с соответствующими командами (наподобие того, что описан здесь: "http://www.citforum.ru/operating_systems/articles/pam.shtml") должен будет создать такого же локального пользователя (или аккаунт - я в терминологии не очень разбираюсь), а дальше - стандартно для нового пользователя...

Можете ли Вы мне подсказать, хотя бы, команду, с помощью которой создаётся новый пользователь (я занимался этим только в графике), а также как она считает введённые имя и пароль?

Цитата:

Действительно, я ошибся. Опция -k относится к smbclient для доступа к ресурсам сервера через полученный билет.

У mount.cifs такой опции нет, но с недавних времён появилась та, о которой Вы пишете. Если Вам удалось таким образом примонтировать рессурс, то у вас достаточно свежее ядро.

//server.domain/ указывать придется, поскольку в керберос принято использовать полные имена.

Нет. Таким образом мне примонтировать не удалось, потому что, как я писал, при этом используется текущий пользователь Линукса. А вот, когда я попробовал примонтировать как раньше - по ntlm, - то, используя сохранённую команду без указания домена, примонтировать не удалось. Поэтому у меня и возник вопрос: это изменение каких-нибудь настроек повлияло, или я просто сохранил неправильную команду?

Цитата:

Пароль не устанавливается, а только проверяется, а билет действительно будет получен.

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

Автоматически создаваться никто не будет. Другой пользователь так же должен быть создал перед логином. Мне кажется, этот вопрос мы обсуждали, когда пришли к выводу, что придется писать собственный модуль аутентификации.

Я понял, что нужно подключить ещё какой-то модуль (или см. выше) для создания пользователя (я, естественно, не буду вручную создавать тысячу пользователей с неизветными мне паролями), но вопрос состоит в том, можно ли будет использовать при этом kerberos, как в упомянутом выше случае postfix использует sasl?

Share this post


Link to post
Share on other sites

CAEman писал(а) Fri, 13 November 2009 18:45

Можете ли Вы мне подсказать, хотя бы, команду, с помощью которой создаётся новый пользователь (я занимался этим только в графике), а также как она считает введённые имя и пароль?

useradd - создание пользоватеся

passwd - задание пароля

О этих утилитах всё необходимое написано в мане.

Цитата:

Я понял, что нужно подключить ещё какой-то модуль (или см. выше) для создания пользователя (я, естественно, не буду вручную создавать тысячу пользователей с неизветными мне паролями), но вопрос состоит в том, можно ли будет использовать при этом kerberos, как в упомянутом выше случае postfix использует sasl?

Нужно использовать либо керберос, либо нтлм. sasl добавляет в процедуру аутентификации ещё одно звено, в котором нет необходимости.

Ввиду затянувшегося обсуждения, чтобы не потерять основную нить

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

Если что-то не так, поправьте.

1. Задача

Нужно логиниться на компьютере линукс под учетной записью

из АД. При этом необходимо использовать как рессурсы локального

компьютера, так и виндоус сервера (или серверов) - в основном

разделяемые каталоги.

2. Особенность задачи

Нет возможности делать какие-либо изменения в АД, поскольку

нет ни пароля, ни связи с администратором.

Нельзя 1) Всести компьютер в домен; 2) Добавть в АД юниксовые

параметры (uid, gid...). Также не представляется возможным

продублировать пользователей в юникс, поскольку их тысячи и

точного списка логинов нет.

3. Обсуждение

Поскольку аудентификацией и авторизацией в линукс занимаются

модули пам, то нужно найти подходящий модуль.

pam_winbind - не требует базы пользователей юникс, но требует

ввода машины в домен. Может использовать либо kerberos либо ntlm

аутентификацию.

pam_krb5 - требует наличия юникс пользователя (аутент. kerberos).

pam_smb - требует наличия юникс пользователя (аутент. ntlm).

pam_ldap - требует наличия юникс пользователя (аутент. по паролю,

хранящемуся в ldap, в последних версиях также возможен sasl).

Аутентификация ntlm более предпочтительна, поскольку у Вас не

решена задача монтирования cifs ресурсов по билету kerberos.

4. Пути решения.

1) Написать свой pam модуль, который будет проводить

аутентификацию в АД и, если нужно, создавать юниксового

пользователя. Недостаток - сложность решения.

2) Попытаться найти в сети подходящий модуль, но нет

никакой гарантии, что он найдется.

3) Отказаться от какого-либо из условий задачи. Например,

если раздобыть список пользователей (даже без паролей), то

их можно разместить в базе ldap на какой-либо машине линукс,

после чего настроить один из перечесленных выше модулей.

Других путей решения я пока не вижу. Когда выберете конкретное

направление, впору создавать новую тему.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...