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

ska

  • Гость

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

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Согласен. Кроме того тренируется ловкость указательного и среднего пальцев. Вырабатывается выдержка, терпение. Еще это дисциплинирует.
Ахахахах  :)
Ctrl+C, Alt+Tab, Ctrl+V, Tab, Alt+Tab, Ctrl+C,...
Сноси Винду, переходи на Линукс ! :)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
Ну раз нужно, делаю мастер-класс по пакетному добавлению пользователей.

Скрипты /usr/sbin/ldap-* (кроме /usr/sbin/ldap-dn) нет смысла вызывать напрямую. Нюанс кроется в том, что они base DN и прочую информацию внутри себя не получают. А для работы скриптов требуется правильно выставить $DN_CONF.

# Определяем главный конфигурационный файл (по выставленному для аутентификации домену)
export DN_CONF=`ldap-dn find "$(system-auth status | cut -f2 -d ' ')"`
# Подключаем вспомогательные библиотеки
. alterator-openldap-functions
. alterator-kdc-princ-functions
# Включаем флаг использования Kerberos
export ENABLE_KRB=1
# Заполняем поля для скриптов
base_rootdn_rootpw

После этих трёх команд скрипты начинают работать прямо из консоли:
ldap-useradd cas
echo 'password123' | ldap-passwd cas

Проверка:
# ldap-getent passwd cas
cas::5002:5002::/home/cas:/bin/bash
# getprinc cas | head -1
Authenticating as principal root/admin@TEST-LAB2.OFFICE.ALTLINUX.RU with password.

Пользователь «cas» входит в сеанс с паролем «password123».
« Последнее редактирование: 26.04.2012 13:19:00 от Skull »
Андрей Черепанов (cas@)

Оффлайн Skull

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

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Пользователь «cas» входит в сеанс с паролем «password123».
А у меня почему-то не заходит... опять сбой авторизации...
Созданные через web заходят, а которых создаю через консоль -- нет.
Спасибо, я бы до такого точно не допер :D
Сноси Винду, переходи на Линукс ! :)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
Созданные через web заходят, а которых создаю через консоль -- нет.
Спасибо, я бы до такого точно не допер :D
Всё дело в Kerberos. Попробуйте изменить пароль пользователя Kerberos командой
. /usr/bin/alterator-kdc-princ-functions
changepw <user>  <пароль>
Андрей Черепанов (cas@)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Всё дело в Kerberos. Попробуйте изменить пароль пользователя Kerberos командой
. /usr/bin/alterator-kdc-princ-functions
changepw <user>  <пароль>
Увы.... /usr/bin/alterator-kdc-princ-functions
changepw user 12345
Authenticating as principal root/admin@TEST with password.
Enter password for principal "user":
Re-enter password for principal "user":
change_password: Principal does not exist while changing password for "user@TEST".
Сноси Винду, переходи на Линукс ! :)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
change_password: Principal does not exist while changing password for "user@TEST".[/code]
Вот и проблема (тестирование правильности заведения я указывал, там бы это показалось)! Удалите заведённого пользователя, подключите
. alterator-kdc-princ-functions
export ENABLE_KRB=1
и повторно заведите пользователя.
Андрей Черепанов (cas@)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Разобрался  :)

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

Посмотрел, что в базу кириллица не добавляется: Фамилия, Имя, Отчество, они как то кодируются. Неплохо бы их также добавлять вместе с пользователем. Также добавить пользователей сразу в определенные группы (useradd параметр -G) -- тоже бы не помешало.
Вообще супер было бы создать пакет по аналогии с useradd. Пишешь команду и параметры со значениями, ну прям также, только все это заносится в базу LDAP.
Спасибо.
Сноси Винду, переходи на Линукс ! :)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
Вообще супер было бы создать пакет по аналогии с useradd. Пишешь команду и параметры со значениями, ну прям также, только все это заносится в базу LDAP.
Понял. Посмотрю.

Чтобы не забыл, завёл https://bugs.altlinux.org/27271
« Последнее редактирование: 27.04.2012 16:21:25 от Skull »
Андрей Черепанов (cas@)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
В ldap-user-tools-0.7.1 был частично реализован синтаксис useradd.

1. Все утилиты /usr/sbin/ldap-* не требуют явного указания домена. Он определяется автоматически. Все утилиты поддерживают параметры --help и --version, показывающие справку и версии этого пакета и сервера LDAP.

2. ldap-passwd позволяет указать пароль в командной строке:
ldap-passwd ivanov  pASSWORDПароль можно указать и при создании пользователя: ldap-useradd -p pASSWORD ivanov

3. Помимо пароля в ldap-useradd поддерживаются фамилия (-f), имя (-n), полное имя (там же можно указать отчество) (-c), домашний каталог (-d), оболочку (-s), группы, разделённые запятыми (-G).

Пример:
ldap-useradd -f "Филиппов" -n "Иван" -c "Филиппов Иван Дмитриевич" \
-d /home/fil -s /bin/sh -p pASSWORD -G g1,group2 \
fill
« Последнее редактирование: 01.10.2012 12:11:41 от Skull »
Андрей Черепанов (cas@)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
В ldap-user-tools-0.7.1 был частично реализован синтаксис useradd.
Класс! Опробую. Спасибо!!!
Сноси Винду, переходи на Линукс ! :)

ska

  • Гость
И я тоже опробую). Как только нсс_лдап куд сёч лдап сервер.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 926
    • Домашняя страница
    • Email
И я тоже опробую). Как только нсс_лдап куд сёч лдап сервер.
Следующим этапом планируется перейти на nss-ldapd, который позволит не только запускать Thunderbird в сеансе LDAP-ного пользователя, но и даст ещё много вкусностей.
Андрей Черепанов (cas@)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 147
    • Email
Спрошу здесь.

При добавлении пользователей получил такую ошибку:
ldap_modify: Type or value exists (20)
additional info: modify/add: memberUid: value #0 already exists
ldap_modify: Type or value exists (20)
additional info: modify/add: memberUid: value #0 already exists
Скрипт такой:
while read line; do

    set -- $line

    #$1 -фамилия, $2 - имя, $3 - отчество, $4 -логин, $5 - пароль
    /usr/sbin/ldap-useradd -f $1 -n $2 -c "$1 $2" -d /home/$4 -s /bin/bash -p $5 -G users,share $4

done < user_list_add
В user_list_add в каждой строке пять значений, разделённых табом.
Что интересно, все пользователи создались и успешно входят в систему.
В чём ошибка/предупреждение заключается ?
Сноси Винду, переходи на Линукс ! :)