Zarg
написал 5 мая 2008 года в 16:24 (3627 просмотров)
Ведет себя
как мужчина; открыл 73 темы в форуме, оставил 120 комментариев на сайте.
Имею:
Debian Etch
Samba 3.0.24
OpenLDAP 2.3.30
Настроил все в точности как написано здесь: http://3apa3a-b-ta3e.livejournal.com/654891.html
в LDAP пользователи нормально создаются, а в домен этих пользователей не пускает, в логах наблюдаю такую картину:
pdb_get_group_sid: Failed to find Unix account for [user]
User [user] in passdb, but getpwnam() fails!
На сколько я понимаю самба пытается искать пользователя в системе а не в лдапе.
Пните в нужном направлении
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Пнуть — завсегда пожалуйста.
И матом (в смысле 'PDC') в приличном обществе попрошу не ругаться.
Короче, у тебя в smb.conf должна жить секция примерно следующего содержания
Добавлял пользователей ты, насколько я понял, посредством чего-то типа phpldapadmin?
В таком случае спешу тебя поздравить: тебя ждут грабли как минимум с Samba SID.
На будущее: с smbpasswd оно вернее.
Извини, но ты сам виноват, ибо невнимателен (не уподобляйся профессорам физики, читай что пишешь!) и задачу сформулировал неполно.
Перевожу: у тебя системная авторизация какая?
Пользователь Самбы не может висеть в воздухе, должен существовать аналогичный системный пользователь!
В LPAD же, насколько я понял, у тебя только база Самбы.
Вывод?
Правильно: пинать Шурупа, чтобы он таки проснулся и разместил мои статьи, где тема худо-бедно рассмотрена (правда, на примере FreeBSD, но там всё и так просто и понятно).
Это все есть
Виндовой прогой LDAP Admin
Не могу не согласиться, на FreeBSD всё логичнее и проще
вообще по моей настройке nsswitch.conf я так понимаю проверяется сначало passwd потом лезем в ldap
эмм … а в чем тогда прелесть OpenLDAP если мне все равно необходимо будет заводить ручками пользователей в системе? или я чего-то не понимаю :\
1. Windows must die!
2. За эту хуйню небось ещё и денег хотят? Шёл бы ты на <font color=«blue»>три буквы</font>…
Ложное утверждение.
На самом деле оно «проще» лишь пока твоё мнение совпадает с мнением разработчиков, а квалификация последних не оставляет желать лучшего. Да и то не всегда…
В Debian не сложнее.
Это — стандарт!
И оно работает? Проверял (типа залогиниться пользователем, которого нет в passwd можно)?
Это — эволюция.
Указывает на то, что пользователь системный (он же Posix) и пользователь Самбы — различные сущности (есть мнение, что выньдоуз с тобой по этому вопросу может не согласится).
Короче: LDIF описывающий пользователя, которым ты пытаешься зайти на файловый сервер Самба в студию!
Я тоже так думал…
Пока не столкнулся с оптимистичнейшей ситуацией, когда при попытке запустить свежеустановленный clamd (который ставился уже после перешаманивания /etc/nsswitch.conf) был послан нахуй с отлупом типа: «нет такого пользователя».
При том, что в /etc/passwd пользователь добавлен был!
После добавления пользователя ручками в базу LDAP (честно: т.е. через ldif и ldapadd) всё заработало.
Мораль: ты не прав. По моим наблюдениям (на Debian не проверял, с тебя результаты проверки) необходимо, чтобы пользователь присутствовал в базе LDAP (наличия пользователя в базе passwd НЕДОСТАТОЧНО). Если пользователь присутствует как в базе LDAP так и в базе passwd и в обоих случаях разрешён логин, то возможна регистрация как с паролем из LDAP, так и с паролем из passwd (что меня в своё время изрядно удивило).
dn: uid=oleg,ou=Users,dc=domen,dc=ru
objectClass: posixAccount
objectClass: top
objectClass: inetOrgPerson
objectClass: sambaSamAccount
gidNumber: 65534
givenName: oleg
sn: oleg
displayName: oleg
uid: oleg
homeDirectory: /home/oleg
loginShell: /bin/bash
sambaLogonScript: oleg.bat
sambaProfilePath: /SERVER/profiles/oleg
sambaKickoffTime: 2147483647
sambaPwdMustChange: 0
sambaAcctFlags:
uidNumber: 20234
sambaSID: S-1-5-21-3831635777-126587316-125978804-41468
sambaDomainName: DOMAIN_NAME
sambaPrimaryGroupSID: S-1-5-21-3831635777-126587316-125978804-132069
cn: oleg
Пробовал зайти в систему под ldap пользователем, увы не получилось
nsswitch.conf:
passwd: files ldap
group: files ldap
shadow: files ldap
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
Хуйня какая-то.
Что у тебя в скрипте oleg.bat — не знаю, но отсутствие каких-либо хэшей паролей выглядит весьма и весьма подозрительно.
Рекомендую почитать про смысл полей классической текстовой базы пользователей passwd.
Далее цитирую не вполне честный LDIF, ибо режим строгой экономии серийных номеров сертификатов, для рабочей учётной записи :)))
Ещё бы получилось без пароля.
Достаточно логично.
Зачем???
По сути: в FreeBSD эти пакетики называются pam_ldap и nss_ldap.
Они у тебя установлены и корректно настроены (без них системная авторизация, а следовательно и получение информации о базовых пользователях для Самбовских атрибутов не работает)?
В том то и дело, что пароль через прогу задавал.
Вообщем чувствую:
1. Надо заводить нормально пользователя в базе лдапа
2. Пробовать заходить в систему пользователем который есть только в лдап
3. Если не удасться зайти, копать nss
Позже отпишусь об этих трех пунктах
Только вот единственное разочаровывает, что для самбы все же необходимо держать системного пользователя, я думал учетки в лдап будет достаточно … тогда не вижу вообще смысла использовать лдап для контроллера домена т.к. и репликация уже не поможет и в случаи аварии на резервном контроллере надо будет ручками заводить пользователей.
Если я тебя правильно понял …
Почему атрибуты хэшей паролей отсутствуют в ldif’е описывающем пользователя?
На самом деле тебе необходимо ещё как минимум исправить содержимое /etc/pam.d/.
pam_ldap && nss_ldap должны были быть установлены по зависимостям.
Но вот задание конфига (с удалением дублей) — за тобой.
Значит так, предложение следующее:
Ты мне в личку сообщаешь свой e-mail (mail.ru не канает, они окончательно обленились и ёбнулись на предмет фильтрации спама), я тебе высылаю мою статью про перевод авторизации FreeBSD на OpenLDAP.
Ты статью читаешь. Общетеоретическую часть понимаешь и выкидываешь нафиг, прикладную переделываешь под Debian, ОБЯЗАТЕЛЬНО ВСЁ проверяешь и высылаешь Шурупу (копию — мне).
После чего кратко отписываешь решение на форуме.
Дык в чём разница, если системный пользователь также живёт в LDAP.
А Самбовский от него отличается наличием objectClass: sambaSamAccount.
С некоторым количеством Самба-специфичных атрибутов.
Неправильно.
Всё так и будет реплицироваться: и системные, и Самбовские.
Вопрос в том: как настраивать Самбы-сервер для автоматического перехода на резервный сервер LDAP?
Zarg
дай мне свое мыло, есть у меня кое какие наработки по сему безобразию на дебиане
Третьей будешь? :)
Сообразим на троих? :)))
яяяяя
Продвинулся на один шаг — добился таки системной авторизации пользователей которые присутствуют только в OpenLDAP, значит pam_ldap и nss_ldap у меня настроены корректно.
Но столкнулся теперь с непонятной мне ошибкой, при попытки выполнить команды net rpc (net rpc join, net rpc rights grant) получаю такой отлуп:
Could not connect to server SERVER
Connection failed: NT_STATUS_ACCESS_DENIED
а в /var/log/samba/log.smb наблюдаю такую запись:
[2008/05/07 19:01:02, 0] rpc_server/srv_netlog_nt.c:_net_auth_2(461)
_net_auth2: failed to get machine password for account SERVER$: NT_STATUS_ACCESS_DENIED
не очень понимаю каких прав не хватает
Конфигом первого в FreeBSD является /usr/local/etc/ldap.conf (не путать с конфигом стандартного ldap-клиента /usr/local/etc/openldap/ldap.conf), конфигом второго — /usr/local/etc/nss_ldap.conf.
Из моих наблюдений: кое-что может работать и при не до конца корректной настройке этих конфигов.
Их содержание совпадает и в моём случае первый является симлинком на второй.
Ну да ты статью должен был читать…
Чем-то это мне напоминает ситуацию, когда не все сервисы корректно рестартованы в нужном порядке.
В моём случае оно прошло после перезагрузки для замены GENERIC-ядра на рабочее.
А если без net, join /etc; просто логин пользователя на файловую шару проходит?
Вообще же этот вопрос я <font color=«blue»>пробовал поднимать</font>.
В Дебиан конфигом первого является /etc/pam_ldap.conf
конфигом второго /etc/libnss-ldap.conf
Не хочет на шару пускать
[2008/05/07 19:42:24, 1] auth/auth_sam.c:sam_account_ok(172)
sam_account_ok: Account for user 'user' password must change!.
[2008/05/07 19:42:24, 5] auth/auth.c:check_ntlm_password(273)
check_ntlm_password: sam authentication for user [user] FAILED with error NT_STATUS_PASSWORD_MUST_CHANGE
[2008/05/07 19:42:24, 3] auth/auth_winbind.c:check_winbind_security(80)
check_winbind_security: Not using winbind, requested domain [DOMAIN_NAME] was for this SAM.
[2008/05/07 19:42:24, 2] auth/auth.c:check_ntlm_password(319)
check_ntlm_password: Authentication for user [user] -> [user] FAILED with error NT_STATUS_PASSWORD_MUST_CHANGE
[2008/05/07 19:42:24, 5] auth/auth_util.c:free_user_info(1867)
attempting to free (and zero) a user_info structure
[2008/05/07 19:42:24, 3] smbd/error.c:error_packet(146)
error packet at smbd/sesssetup.c(99) cmd=115 (SMBsesssetupX) NT_STATUS_PASSWORD_MUST_CHANGE
[2008/05/07 19:42:24, 5] lib/util.c:show_msg(485)
[2008/05/07 19:42:24, 5] lib/util.c:show_msg(495)
—--user.ldif —--
dn: uid=user,ou=Users,dc=domain,dc=ru
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
objectClass: sambaSamAccount
cn: user
sn: user
givenName: user
uid: user
uidNumber: 1000
homeDirectory: /home/user
loginShell: /bin/bash
gecos: System User
userPassword:: e1NIQX1tZ3B3TEpyUFczcHdYcWFZMWRKZmYrWng0OVE9
sambaKickoffTime: 2147483647
sambaPwdMustChange: 0
sambaAcctFlags:
sambaSID: S-1-5-21-1700397604-4228389393-4119722327-3000
sambaDomainName: DOMAIN_NAME
gidNumber: 512
sambaPrimaryGroupSID: S-1-5-21-1700397604-4228389393-4119722327-512
sambaNTPassword: 76C69ECE6590C8E8959F25CA6AFB7C7E
sambaLMPassword: C23AAF2C4C5CA50409752A3293831D17
sambaPwdLastSet: 1210164762
А ты как туда ломишься?
\\sever\
или
\\server\share\
У меня до корректного рестарта первый вариант обламывался, но второй проходил.
Пользуешься всё тем же уёбищным идеологически неправильным клиентом?
Немедленно брось бяку! И поставь наконец PLA!!!
Далее: есть нехорошее подозрение, что в статье с ldif’ом добавления POSIX-пользователя я несколько намудрил.
В боевом режиме я его добавлял следующим ldof’ом:
Самбовские атрибуты добавляются посредством
В твоём случае до хуя лишних objectClass’ов и атрибутов.
Диагностировать причину ошибки не возьмусь.
Ура! пустила самба в шару а затем и в домен пустила. Это после того как я удалил нафик пользователя созданного это виндовой програмулиной и создал нормально через ldif файл с последующим добавлением samba атрибутов командой smbpasswd -a user
Мда, не раз ты мне говорил выкинуть эту програмулину, я тебя не слушал и в результате получил геморрой…хотя тоже опыт.
Приведу в порядок сервак и полученные знания в голове, обязательно возьмусь за статью как это все поднимается на Debian
закинула я вам конфиги,
вчера дома тырнета небыло =(
Учись внимательно читать логи! Вот почему тебя не пускает:
В общем случае атрибут может быть и полезен.
Но только когда чётко знаешь что он из себя представляет и зачем его вводишь.
Что-то у тебя тут до хуя всего разного.
При этом присутствует не всё, что нужно.
Зато есть кое-что из того, что я с учёткой пользователя скрестить не смог (а как показала последующая практика оно и не нужно было).
По пунктам:
Отсутствует objectClass 'account'
Присутствуют не понятные мне 'person’, 'organizationalPerson' и ’shadowAccount’.
'inetOrgPerson’ — это атрибуты адресной книги. Согласно моему текущему мнению им в учётной записи пользователя делать нечего.
На хуя всем подряд давать shell?
Пользователям почты и домена, + авторизация в Сквиде, shell нафиг не нужен!
Насколько я понял, 'gecos' соответствует 'login class' в passwd.
Запись туда комментария — ошибка в MigrationTools.
Всё как я говорил?
И практической разницы с FreeBSD не наблюдается?
Так? :)
Это не тот опыт, за которым нужно было идти.
Подход правильный.
Но попрошу не халявить. Халява — не наш подход.
К сожалению мне в моей статье удалось раскрыть надлежащим образом не все вопросы.
Тебе наряд следующий:
1. Попробовать разобраться с вопросом сервера репликаций. По полной программе: т.е. как сервер (в моём случае затык вероятно где-то на уровне конфига slave’а (данные в replog писались, но на slave не переносились), так и клиент (автоматический переход на использование резервного сервера).
2. Обзор java-аналога phpldapadmin — jxplorer.
3. Если используешь GNOME — с тебя обзор клиента gq.
тааак, рано обрадовался :(
в домен то пускает лдап пользователей, а вот на шару не может зайти, при этом если unix учетка заведена в /etc/passwd а самбовская в лдапе то тогда под этой учеткой пускает на шару.
Большие подозрения, что эта проблема связана с невозможностью выполнить ни одну net rpc команду, в ответ на попытку дать группе прав получаю
Could not connect to server 127.0.0.1
Connection failed: NT_STATUS_ACCESS_DENIED
после безуспешной попытки зайти на шару в логах самбы:
init_sam_from_ldap: Entry found for user: username
Finding user username
Trying _Get_Pwnam(), username as lowercase is username
Get_Pwnam_internals did find user [username]!
Primary group for user username is a Local Group and not a domain group
sam_account_ok: Checking SMB password for user username
logon_hours_ok: user username allowed to logon at this time (Thu May 8 10:12:10 2008)
make_server_info_sam: made server info for user username -> username
check_ntlm_password: sam authentication for user [username] succeeded
check_ntlm_password: PAM Account for user [username] succeeded
check_ntlm_password: authentication for user [username] -> [username] -> [username] succeeded
User name: username Real name: Domain Administrator
UNIX uid 1100 is UNIX user username, and will be vuid 112
Adding homes service for user 'username' using home directory: '/home/username'
user 'username' (from session setup) not permitted to access this share (novosti)
Что прописано в slapd.conf про доступ для пользователя Samba?
Что пишется в логах LDAP’а (при уровне логирования ~256).
Что за 'vuid 112\′?
Обращаешься к одной и той же шаре? Как?
Все связанные сервисы корректно рестартованы?
блиа, Zarg
мня почитай сначала!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Вообще домен поднял, все работает, суть всей этой системы в принципе понял, даже при настройках могу обойтись без smbldap-tools.
Теперь вот пытаюсь прикрутить DHCP к LDAP. По многочисленым статьям в инете я так понял необходимо патчить пакет dhcp чтобы тот умел работать с каталогом лдапа, но как это делается в дебиан не могу представить.
В данный момент в LDAP добавлена схема dhcp.schema и внесены основные записи, в /etc/dhcpd.conf пишу строки:
ldap-server «localhost»;
ldap-port 389;
ldap-username «cn=manager,dc=myserver,dc=myprovider,dc=ru»;
ldap-password «secret»;
ldap-base-dn «dc=myserver,dc=myprovider,dc=ru»;
ldap-method static;
и при рестарте получаю ругань:
May 16 17:55:29 srv1 dhcpd: /etc/dhcpd.conf line 15: expecting a parameter or declaration.
May 16 17:55:29 srv1 dhcpd: ldap-server
May 16 17:55:29 srv1 dhcpd: ^
May 16 17:55:29 srv1 dhcpd: /etc/dhcpd.conf line 16: expecting a parameter or declaration.
May 16 17:55:29 srv1 dhcpd: ldap-port
May 16 17:55:29 srv1 dhcpd: ^
May 16 17:55:29 srv1 dhcpd: /etc/dhcpd.conf line 17: expecting a parameter or declaration.
May 16 17:55:29 srv1 dhcpd: ldap-username
May 16 17:55:29 srv1 dhcpd: ^
May 16 17:55:29 srv1 dhcpd: /etc/dhcpd.conf line 18: expecting a parameter or declaration.
May 16 17:55:29 srv1 dhcpd: ldap-password
May 16 17:55:29 srv1 dhcpd: ^
May 16 17:55:29 srv1 dhcpd: /etc/dhcpd.conf line 19: expecting a parameter or declaration.
May 16 17:55:29 srv1 dhcpd: ldap-base-dn
May 16 17:55:29 srv1 dhcpd: ^
May 16 17:55:29 srv1 dhcpd: /etc/dhcpd.conf line 20: expecting a parameter or declaration.
May 16 17:55:29 srv1 dhcpd: ldap-method
May 16 17:55:29 srv1 dhcpd: ^
May 16 17:55:29 srv1 dhcpd: Configuration file errors encountered — exiting
May 16 17:55:29 srv1 dhcpd: exiting.
Я вообще не вполне понимаю, на фига этот пакет нужен.
На фига?
Именно поэтому к sendmail’у LDAP я не прикручивал.
Читать про сборку .deb-пакетов из исходников.
Искать патч.
Собирать пакет с нужными тебе свойствами.
А смысл?
Тебя же предупредили, что работать без патча и не должно.
Или уже версии заметно отличаются от упоминавшихся в статьях?
ЗЫ: И вообще: с доменом разобрался — во имя читаемости для нового вопроса формулируй новую тему.
Если пересекается с предыдущей — ставь ссылку.
А расписать что ты понял и почему до этого у тебя не работало тяжко?
Самому же потом пригодится…
Ну я же обещал статейку подрихтовать, вот и жди :)
попутно к ldap прикручиваю dhcp,dns,postfix
Дык статья — это одно, а ответ на конкретный частный вопрос — совсем другое.
Естественно не забыв про ответы на вопрос «$На фига?$"? :)
ЗЫ: Кстати, в процессе перевешивания авторизации файлового сервера на OpenLDAP на другой машине отметил, что локальный /etc/passwd имеет приоритет над LDAP’ом, т.е. когда под одним UID’ом в passwd один пользователь, а в LDAP — другой, то в качестве владельца файла отображается первый (который локальный).