Автор Тема: Создание пользователей через скрипт [решено]  (Прочитано 24148 раз)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
Только один вопрос: мне весь этот скрипт нужен или только конец (edit ldap) ?
Там идёт предвариетельная подготовка переменных сред окружения. После этого этот скрипт загружается в shell через
. /usr/sbin/ldap-useraddи выполняются функции. Увы, написан он так, что без напрямую его использовать нельзя.
Андрей Черепанов (cas@)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Увы, написан он так, что без напрямую его использовать нельзя.
Да, тут не так все просто...
Странно, что в Интернете мало информации по этой теме, неужели все создают 100 и 1000 пользователей вручную ??? Не верю!
Сноси Винду, переходи на Линукс ! :)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
Странно, что в Интернете мало информации по этой теме, неужели все создают 100 и 1000 пользователей вручную ??? Не верю!
Скрипт написать нетрудно. Просто никому не нужно.
Андрей Черепанов (cas@)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Скрипт написать нетрудно. Просто никому не нужно.
Как это никому ? А мне!   :P
Ладно, если ничего не соображу, буду вручную вбивать около 600 пользователей...  :'(
Думаю, будет весело!   :D
Сноси Винду, переходи на Линукс ! :)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
Скрипт написать нетрудно. Просто никому не нужно.
Как это никому ? А мне!   :P
Ладно, если ничего не соображу, буду вручную вбивать около 600 пользователей...  :'(
Думаю, будет весело!   :D
Смотрите исходники скрипта ldap_useradd. Там несложно.
Андрей Черепанов (cas@)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Смотрите исходники скрипта ldap_useradd. Там несложно.
Да я понимаю, что несложно, когда знаешь как сделать :-)
Для меня очень тяжело читать чужие записи... если бы там комментарии были...
Я лишь предполагаю, что мне нужна только эта часть (вписал пока пользователя ivanov, для наглядности):ldapadd -a -D "$rootdn" $rootpw -x -H "ldap://127.0.0.1" >/dev/null<<EOF
dn: uid=ivanov,ou=People,$base
uid: ivanov
cn: ivanov
sn: ivanov
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: sambaSamAccount
loginShell: /bin/bash
userPassword: {crypt}x
uidNumber: 5001
gidNumber: 5001
homeDirectory: /home/ivanov
sambaAcctFlags: [U          ]
sambaSID: $user_sid
sambaPwdLastSet: 2147483647
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
sambaPwdMustChange: 0
EOF
Только часть переменных мне непонятны:  $rootdn $rootpw $user_sid + пароль (опять же, предполагаю, что можно в параметре команды указать ключ -w <пароль>, но не уверен). Попробую может, хотя сильно сомневаюсь в своих предположениях...
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Вроде бы, немного разобрался  :) (по крайней мере мне так кажется)
Осталось:
  • Не знаю как добавить Имя и Отчество (думаю, что где-то здесь должно быть -- cn: ivanov, sn: ivanov, как-то нужно продолжить список).
  • Что означает переменная $user_sid, где её брать ?
  • Что делать с паролем пользователя, можно ли его также через chpasswd или прям в открытом виде писать ?
Пока так выглядит:ldapadd -a -D "cn=ldaproot,dc=firma" $rootpw -x -H "ldap://127.0.0.1" >/dev/null<<EOF
#$rootpw и $rootdn брал из /etc/openldap/slapd-firma.conf
dn: uid=ivanov,ou=People,dc=firma
uid: ivanov
cn: ivanov
sn: ivanov
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: sambaSamAccount
loginShell: /bin/bash
#userPassword: {crypt}x
uidNumber: 5001
gidNumber: 5001
homeDirectory: /home/ivanov
sambaAcctFlags: [U          ]
sambaSID: $user_sid
sambaPwdLastSet: 2147483647
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
sambaPwdMustChange: 0
EOF

Прошу помощи. Спасибо.
« Последнее редактирование: 24.04.2012 08:35:07 от berkut_174 »
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Кажется, нашел про sambaSID.
net getlocalsid
S-1-5-21-3153401187-884309351-300090610
Стало быть для пользователя ivanov будет:
sambaSID:   S-1-5-21-3153401187-884309351-300090610-5001
Осталось про Имя и Отчество, и пароль решить вопрос...
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
К чему пришел: в базу пользователь добавляется, но войти в систему под этим пользователем я не могу.
Через web пробовал задавать пароль, после создания через скрипт -- все равно не пускает. Где ошибся ? Ну явно где-то в пароле. Подскажите как быть.
Пока что получилось:#!/bin/sh

ldapadd -a -D "cn=ldaproot, dc=firma" -w "marpee3tgoghohs8" -x -H "ldap://localhost" >/dev/null<<EOF
dn: uid=sidorov,ou=People,dc=firma
uid: sidorov
cn: sidorov
sn: sidorov
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: sambaSamAccount
loginShell: /bin/bash
userPassword: {crypt}x
uidNumber: 6001
gidNumber: 6001
homeDirectory: /home/sidorov
sambaAcctFlags: [U          ]
sambaSID: S-1-5-21-3024522724-928228825-4259924947-6001
sambaPwdLastSet: 2147483647
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
sambaPwdMustChange: 0
EOF
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Зато таким способом можно удалять пользователей:ldapdelete -D "cn=ldaproot, dc=firma" -w "maepee3ogughohs8" -x -H "ldap://127.0.0.1" "uid=ivanov,ou=People,dc=firma"
ldapdelete -D "cn=ldaproot, dc=firma" -w "maepee3ogughohs8" -x -H "ldap://127.0.0.1" "cn=ivanov,ou=Group,dc=firma"
хоть что-то хорошо :-)
Точно ошибка альтератора http://forum.altlinux.org/index.php/topic,17163.0.html
Сноси Винду, переходи на Линукс ! :)

ska

  • Гость
Тоже однажды приспичило создавать юзеров скопом. Локальных создать проще всего, как мне показалось, с помощью newusers, которому надо подсунуть файл формата passwd, который в свою очередь можно легко сгенерить с помощью собственного скрипта. Когда дело дошло до лдап юзеров (серверных),  меня тоже послали изучать исходники ldap_useradd. Не осилил(.
В итоге втыкал мышкой). Тем не менее тема массового создания пользователей на сервере продолжает быть для меня актуальной и интересной).

ska

  • Гость
Вот еще интересная переписка обнаружилась. http://comments.gmane.org/gmane.linux.altlinux.sisyphus/90405
Судя по ней скрипты типа ldap_useradd бесполезно мурыжить, все равно нифига не выйдет).

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Вот еще интересная переписка обнаружилась. http://comments.gmane.org/gmane.linux.altlinux.sisyphus/90405
Судя по ней скрипты типа ldap_useradd бесполезно мурыжить, все равно нифига не выйдет).
Сам тоже начал мышкой тыкать :-)
Как будет время поизучаю. То что эти скрипты бесполезно мыружить - не думаю, просто их нужно все изучить, один из них тянет за собой другой и так далее. Из-за этого нужно просматривать каждый из скриптов. Времени на это дело пока нет, уж очень объемный и тяжелый материал, в лоб не осилить :-(
Пока тоже забросил...
Сноси Винду, переходи на Линукс ! :)

Онлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
Отмечусь. У нас тут есть скрипт, который пользователей заводит. Написан на Perl, с использованием perl-ldap. Но писал не я, подробностей не расскажу сходу. Могу потихоньку смотреть, если вариант на Perl интересен.

Выкладывать всё смысла нет: специфики много, а заведение пользователя в ldap - небольшая часть.

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Отмечусь. У нас тут есть скрипт, который пользователей заводит. Написан на Perl, с использованием perl-ldap. Но писал не я, подробностей не расскажу сходу. Могу потихоньку смотреть, если вариант на Perl интересен.
Выкладывать всё смысла нет: специфики много, а заведение пользователя в ldap - небольшая часть.
Что-то на это похожее: http://www.linuxrsp.ru/artic/LDAP-HOWTO.html (там ближе к середине, что-то про скрипт на перл как раз).
Впринципе меня бы устроил любой вариант, лишь бы работало :-) Но я сам, перл не знаю, вообще.

Кстати, если через web создавать пользователей, то не так уж и долго получается, если конечно в группы дополнительные не добавлять пользователей. Но через скрипт конечно надежней, вручную можно ошибиться или не так что-то сделать, если создавать много равноправных пользователей. Но к сожалению сейчас нет свободного времени на изучение данного направления... Думал, что все гораздо проще будет, надеялся что кто то уже решал подобный вопрос, оказывается что нет... Да и на просторах Интернета мало информации по LDAP...
« Последнее редактирование: 25.04.2012 21:40:23 от berkut_174 »
Сноси Винду, переходи на Линукс ! :)