Страница 1 из 2

smbldap-tools и Samba PDC

Добавлено: 2007-12-05 13:10:17
DJ Kill
Есть домен-контроллер Samba на FreeBSD 6.2
В конфиге самбы:

Код: Выделить всё

        add user script = /usr/local/sbin/smbldap-useradd -m "%u" -s "/bin/csh"
        delete user script = /usr/local/sbin/smbldap-userdel "%u"
        add group script = /usr/local/sbin/smbldap-groupadd "%g"
        delete group script = /usr/local/sbin/smbldap-groupdel "%g"
        add user to group script = /usr/local/sbin/smbldap-groupmod -m "%u" "%g"
        set primary group script = /usr/local/sbin/smbldap-usermod -g "%g" "%u"
        add machine script = /usr/local/sbin/smbldap-useradd -w "%u"
При добавлении машины в домен получается запись вида:

Код: Выделить всё

ldapsearch -x -LLL -b 'dc=gtss,dc=ru' 'uid=test1234$'

dn: uid=test1234$,ou=machines,dc=gtss,dc=ru
objectClass: top
objectClass: account
objectClass: posixAccount
cn: test1234$
uid: test1234$
uidNumber: 1166
gidNumber: 515
homeDirectory: /dev/null
loginShell: /bin/false
description: Computer
gecos: Computer
Это, естесственно, не работает. Корректная запись должна иметь samba3 поля:

Код: Выделить всё

dn: uid=test123$,ou=machines,dc=gtss,dc=ru
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: sambaSamAccount
cn: test123$
uid: test123$
uidNumber: 1165
gidNumber: 515
homeDirectory: /dev/null
loginShell: /bin/false
description: Computer
gecos: Computer
sambaDomainName: GTSS
sambaAcctFlags: [W          ]
displayName: test123$
sambaPrimaryGroupSID: S-1-5-21-...
sambaPwdLastSet: 1196846008
sambaSID: S-1-5-21-...
Объясните что я делаю не так? Туплю. :(

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-05 13:30:10
Alex Keda
кнопочку code не юзаешь :)))

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-05 18:50:43
Dron
скрипт добавляет только posix аттрибуты...
SMB аттрибуты добавляет самба, она у тебя настроена до конца? Запущена? Работает? В логи не ругается?

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-05 21:11:51
DJ Kill
Запущена. Работает. Уже года полтора.

В логах вроде ничего особенного нет....

Причём если после добавления компьютера в домен войти в LDAP Account Manager и вручную создать Samba3 параметры - то всё ок.

Какая часть самбы за это отвечает?

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-06 13:34:10
Dron
дай конфиги smbldap-tools и smb.conf
а то с потолка не разборчиво ;)

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-06 13:59:15
DJ Kill
smbldap.conf

Код: Выделить всё

SID="S-1-5-21-..."
sambaDomain="GTSS"
slaveLDAP="127.0.0.1"
slavePort="389"
masterLDAP="127.0.0.1"
masterPort="389"
ldapTLS="0"
verify=""
cafile=""
clientcert=""
clientkey=""
suffix="dc=gtss,dc=ru"
usersdn="ou=users,${suffix}"
computersdn="ou=machines,${suffix}"
groupsdn="ou=groups,${suffix}"
idmapdn="ou=idmap,${suffix}"
sambaUnixIdPooldn="sambaDomainName=GTSS,${suffix}"
scope="sub"
hash_encrypt="SSHA"
crypt_salt_format=""
userLoginShell="/bin/csh"
userHome="/home/%U"
userHomeDirectoryMode="700"
userGecos="System User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
defaultMaxPasswordAge="45"
userSmbHome="\\geo-samba\%U"
userProfile="\\geo-samba\profiles\%U"
userHomeDrive="U:"
userScript="start.bat"
mailDomain="gtss.ru"
with_smbpasswd="0"
smbpasswd="/usr/local/bin/smbpasswd"
with_slappasswd="0"
slappasswd="/usr/local/sbin/slappasswd"
smb.conf

Код: Выделить всё

[global]
        dos charset = 866
        unix charset = KOI8-R
        display charset = KOI8-R
        workgroup = GTSS
        server string = Primary Domain Controller (Samba %v)
        interfaces = 192.168.100.0/24, 192.168.0.0/24, 127.0.0.1
        bind interfaces only = Yes
        passdb backend = ldapsam:ldap://127.0.0.1
        log level = 3
        log file = /var/log/samba/%m.log
        max log size = 1000
        time server = Yes
        max open files = 1000000
        load printers = No
        add user script = /usr/local/sbin/smbldap-useradd -m "%u" -s "/bin/csh"
        delete user script = /usr/local/sbin/smbldap-userdel "%u"
        add group script = /usr/local/sbin/smbldap-groupadd "%g"
        delete group script = /usr/local/sbin/smbldap-groupdel "%g"
        add user to group script = /usr/local/sbin/smbldap-groupmod -m "%u" "%g"
        set primary group script = /usr/local/sbin/smbldap-usermod -g "%g" "%u"
        add machine script = /usr/local/sbin/smbldap-useradd -w "%u"
        logon script = start.bat
        logon path = \\geo-samba\profiles\%U
        domain logons = Yes
        os level = 250
        preferred master = Yes
        domain master = Yes
        dns proxy = No
        wins support = Yes
        ldap admin dn = "uid=root,ou=users,dc=gtss,dc=ru"
        ldap delete dn = Yes
        ldap group suffix = ou=groups
        ldap idmap suffix = ou=idmap
        ldap machine suffix = ou=machines
        ldap suffix = dc=gtss,dc=ru
        ldap ssl = no
        ldap user suffix = ou=users
        idmap uid = 10000-20000
        idmap gid = 10000-20000
        winbind cache time = 1200
        winbind use default domain = Yes
        winbind trusted domains only = Yes
        admin users = root, pirate, lva, denja, admin, dj_kill
        acl group control = Yes
        acl map full control = No
        force create mode = 0755
        force directory mode = 06755
        hosts allow = 192.168.100.0/24, 127.0.0.1, 192.168.0.0/24
        hosts deny = all
        profile acls = Yes
        map acl inherit = Yes
        browseable = No

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-07 11:54:34
DJ Kill
Хм. Вообще изыскания зашли в тупик. :(
Даже при добавлении Samba3 параметров в LAM не работает. :(

Код: Выделить всё

dn: uid=geo-ronzhina$,ou=machines,dc=gtss,dc=ru
objectClass: sambaSamAccount
objectClass: posixAccount
objectClass: account
sambaDomainName: GTSS
sambaAcctFlags: [W          ]
displayName: geo-ronzhina$
sambaPrimaryGroupSID: S-1-5-21-...
sambaPwdLastSet: 1197016305
sambaSID: S-1-5-21-...
gidNumber: 515
loginShell: /bin/false
gecos: geo-ronzhina$
homeDirectory: /dev/null
uid: geo-ronzhina$
cn: geo-ronzhina$
uidNumber: 50022
description: geo-ronzhina$

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-07 12:12:51
Dron
а

Код: Выделить всё

smbpasswd -W
делал?

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-07 12:21:45
DJ Kill
_Dron_ писал(а):а

Код: Выделить всё

smbpasswd -W
делал?
Конечно.
Не добавляются только компьютеры. Остальное в самбе работает абсолютно нормально.
Причём в какой момент перестали добавлятся компы я не знаю. До этого всё работало отлично. Люди которые эту самбу держали говорят что ничего не меняли. :(

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-07 12:29:47
Dron
ок
давай loglevel = 5
добавляй машину и смотри, что валить будет...

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-07 15:29:42
DJ Kill
Пока вижу только это:

Код: Выделить всё

[2007/12/07 15:25:54, 0] passdb/pdb_interface.c:pdb_default_create_user(329)
  _samr_create_user: Running the command `/usr/local/sbin/smbldap-useradd -w "geo-rmarina$"' gave 9
:(

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-07 15:52:49
Dron

Код: Выделить всё

if ($rc and defined($dn)) {
    print "$0: user $userName exists\n";
    exit (9);
Собственно такая учетка уже есть в LDAP

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-07 16:19:48
zg
_Dron_ писал(а):

Код: Выделить всё

if ($rc and defined($dn)) {
    print "$0: user $userName exists\n";
    exit (9);
если это пхп, то defined проверяет "объявленность" константы, обычно юзают isset, которая проверяет "установленность" переменных... там должно быть точно defined?

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-07 16:20:51
Dron
это не php :)

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-07 16:53:08
DJ Kill
Хм. Очень мне не нравится вот это:

Код: Выделить всё

ldapsearch -LLL -x -b 'dc=gtss,dc=ru' 'ou=domains,dc=gtss,dc=ru'
ldap_initialize( <DEFAULT> )
filter: ou=domains,dc=gtss,dc=ru
requesting: All userApplication attributes
И тишина... Не находит ничего. :(

И вот это:

Код: Выделить всё

 net getlocalsid
[2007/12/07 16:52:58, 0] lib/smbldap_util.c:smbldap_search_domain_info(304)
  smbldap_search_domain_info: Got too many (2) domain info entries for domain GTSS
[2007/12/07 16:52:58, 0] utils/net.c:net_getlocalsid(622)
  Can't fetch domain SID for name: GEO-SAMBA
Причём когда через LAM смотришь то всё есть и в единственном экземпляре. Если удалить в LAM, то net getlocalsid выдаёт корректную информацию, но LAM добавляет пользователей некорректно. :(

Где это ещё может быть зарыто кроме как в дереве LDAP? Почему запись дублируется, хотя в LDAP она одна?

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-07 18:45:38
DJ Kill
Фишку net getlocalsid пофиксил.

Осталась только одна ерунда (которая лечится добавлением вручную параметров через LAM):

Код: Выделить всё

[2007/12/07 18:32:58, 3] passdb/pdb_interface.c:pdb_default_create_user(329)
  _samr_create_user: Running the command `/usr/local/sbin/smbldap-useradd -w "geo-rmarina$"' gave 0
[2007/12/07 18:32:58, 3] passdb/pdb_interface.c:pdb_default_create_user(354)
  pdb_default_create_user: failed to create a new user structure: NT_STATUS_NO_SUCH_USER
Компьютер в домене создаётся. Но Samba3 параметров у него нет. :(

В логе самбы полезного ничего не нашёл. :(

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-07 18:53:57
fr33man
А если использовать ldapscripts? У меня с ними все ок. )

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-07 19:01:09
DJ Kill
Поднимал как раз по Вашей статье это в первый раз. Но, почему-то, решил через smbldap-tools.

Причём оно работало (и на двух других домен-контроллерах работает до сих пор).

Хочется так и оставить.

Кстати, если на них переходить - LAM это нормально обрабатывает?

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-07 19:15:41
Dron
включай debug запросов LDAP и смотри что пишет скрипт и чт опытается прочитать самба и в итоге не находит...

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-07 19:22:10
DJ Kill
Что не находит скрипт я и так понимаю. :) Samba3 параметры.

Не понятно почему они не создаются. :(

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-07 20:09:26
DJ Kill
Решение таки нашлось.

в /etc/ldap.conf надо было поменять

Код: Выделить всё

nss_base_shadow         ou=users,dc=gtss,dc=ru?one
nss_base_passwd         ou=users,dc=gtss,dc=ru?one
nss_base_group          ou=groups,dc=gtss,dc=ru?one
на

Код: Выделить всё

nss_base_shadow         dc=gtss,dc=ru?sub
nss_base_passwd         dc=gtss,dc=ru?sub
nss_base_group          ou=groups,dc=gtss,dc=ru?one
Вот теперь бы заставить это логинится в систему доменными пользователями и будет счастье. :)

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-09 19:30:26
Dron
Прикольно, а ты писал
Остальное в самбе работает абсолютно нормально.
соответственно я решил что с юзерами проблем нет и не подумал об nss_ldap

А какие проблемы с пользователями?
Вгоняешь машину в домен и логонишься доменным юзером... делов-то :)

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-09 20:34:21
DJ Kill
_Dron_ писал(а):соответственно я решил что с юзерами проблем нет и не подумал об nss_ldap
nss_ldap вроде работает. То есть is user информацию выдаёт. И работал всегда.
Ну, собственно, это понятно. Ибо он машину искал в ou=users и не находил её, а пользователей находил всегда. Я ступил просто.
А какие проблемы с пользователями?
Пользователь из LDAP не может войти на машину по SSH, допустим.
Хотя, как сказано выше, система о нём знает. :)

В логах: invalid credentials. В логах самого LDAP никаких явных ошибок не вижу. :(

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-10 11:04:18
Dron
А...
Так чтобы локально пользователей пускало, авторизуя их через LDAP, надо добавить к этой связке pam_ldap ;)

Re: smbldap-tools и Samba PDC

Добавлено: 2007-12-10 12:07:18
DJ Kill
_Dron_ писал(а):А...
Так чтобы локально пользователей пускало, авторизуя их через LDAP, надо добавить к этой связке pam_ldap ;)
Я знаю. Он у меня стоит. И даже как-то (по статье на этом сайте) настроен. Но не работает.