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

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 145
    • Email
Интересует вопрос: возможно ли создавать пользователей через скрипт?
for i in ivanov petrov sidorov
do
useradd $i
done
Как-то так...

Ну и с паролями что делать?
Вообщем, кто может - прокомментируйте, пожалуйста.

Предположим, задача стоит - создать 100 пользователей.

Спасибо.
« Последнее редактирование: 14.03.2012 14:46:37 от berkut_174 »
Сноси Винду, переходи на Линукс ! :)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Ну и с паролями что делать?
у useradd есть параметр
       -p passwd
              The encrypted password as returned by crypt(3). The default is to disable the account.

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 145
    • Email
у useradd есть параметр
       -p passwd
              The encrypted password as returned by crypt(3). The default is to disable the account.
Я, наверно, неправильно делаю...
Вот так:
useradd -d /home/user -s /bin/bash -c normal -p dy3mrMiS user
И потом не могу зайте под пользователем.
Что неправильно?
Сноси Винду, переходи на Линукс ! :)

Оффлайн andrew_b

  • Завсегдатай
  • *
  • Сообщений: 534
Вот так:
useradd -d /home/user -s /bin/bash -c normal -p dy3mrMiS user
И потом не могу зайте под пользователем.
Что неправильно?
Читаем внимательно:
Цитировать
       -p passwd
              The encrypted password as returned by crypt(3). The default is to disable the account.

dy3mrMiS -- это такой пароль или его хэш, то есть encrypted password?

UPD: search.altlinux.org выводит, например, на это:
http://lists.altlinux.org/pipermail/sysadmins/2010-December/033825.html
В глубине треда есть ответ на ваш вопрос:
echo "user:password" | chpasswd

« Последнее редактирование: 14.03.2012 08:38:47 от andrew_b »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
И потом не могу зайте под пользователем.
Что неправильно?
useradd -d /home/user -s /bin/bash -c normal -p `md5pass dy3mrMiS` usermd5pass - это из пакета syslinux. Ну или что-то похожее использовать.
« Последнее редактирование: 14.03.2012 10:29:49 от asy »

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 145
    • Email
echo "user:password" | chpasswd
Спасибо! То что надо!
useradd -d /home/user -s /bin/bash -c normal -p `md5pass dy3mrMiS` user
Спасибо. К сожалению так не работает...

Вот такой у меня получился скрипт:
#!/bin/sh

for i in "ivanov Иванов Иван dy3mrMiS" "petrov Петров Иван dy4mrMiS" "sidorov Сидоров Иван dy5mrMiS"; do
set -- $i
useradd -d /home/$1 -s /bin/bash -G vboxusers,sambashare,video,camera,xgrp,scanner,radio,audio,cdwriter,floppy,cdrom,proc,uucp -c "$2 $3" $1
echo "$1:$4" | chpasswd
done

Спасибо!  ;)
Сноси Винду, переходи на Линукс ! :)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
useradd -d /home/user -s /bin/bash -c normal -p `md5pass dy3mrMiS` user
Спасибо. К сожалению так не работает...
Да, в tcb, оказывается, не md5: http://www.openwall.com/crypt/
Но смысл тот же. :-)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 145
    • Email
Появился вопрос, к знатокам bash.
Как можно указать, ну не знаю, какими-нибудь маркерами, длину строки (не могу выразиться...).
Например, у меня такой скрипт:
#!/bin/sh

for i in "ivanov Иванов Иван dy3mrMiS"
"petrov Петров Иван dy4mrMiS"
"sidorov Сидоров Иван dy5mrMiS"; do
set -- $i
useradd -d /home/$1 -s /bin/bash -G vboxusers,sambashare,video,camera,xgrp,scanner,radio,audio,cdwriter,floppy,cdrom,proc,uucp -c "$2 $3" $1
echo "$1:$4" | chpasswd
done
Как мне вот тут
for i in "ivanov Иванов Иван dy3mrMiS"
"petrov Петров Иван dy4mrMiS"
"sidorov Сидоров Иван dy5mrMiS"; do
указать, что это одна строка ?
Или вот так записать:
for i in
"ivanov Иванов Иван dy3mrMiS"
"petrov Петров Иван dy4mrMiS"
"sidorov Сидоров Иван dy5mrMiS"; do
Сноси Винду, переходи на Линукс ! :)

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 950
ivanov Иванов Иван dy3mrMiS
petrov Петров Иван dy4mrMiS
sidorov Сидоров Иван dy5mrMiS

в отдельный файл, а в скрипте читать ?

Или тут идею возьмите
http://forum.altlinux.org/index.php/topic,22513.msg174767.html#msg174767
« Последнее редактирование: 31.03.2012 09:33:19 от YYY »

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 145
    • Email
в отдельный файл, а в скрипте читать ?
Или тут идею возьмите
http://forum.altlinux.org/index.php/topic,22513.msg174767.html#msg174767
Мне все равно, у меня просто получается создать информацию о пользователях через Enter
"ivanov Иванов Иван dy3mrMiS"
"petrov Петров Иван dy4mrMiS"
"sidorov Сидоров Иван dy5mrMiS"
Я вижу два варианта: либо соединить все это в одну строку через пробел, либо заставить работать скрипт, чтобы он думал, что эти Enter'ы означают продолжение строки...
Про идею из ссылки не понял... попробую чуть получше изучить скрипт, позже...
Сноси Винду, переходи на Линукс ! :)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Как мне вот тут
for i in "ivanov Иванов Иван dy3mrMiS"
"petrov Петров Иван dy4mrMiS"
"sidorov Сидоров Иван dy5mrMiS"; do
указать, что это одна строка ?
Не понял, вот это имеется ввиду что ли ( \ - перенос строки ) ?
for i in "ivanov Иванов Иван dy3mrMiS" \
"petrov Петров Иван dy4mrMiS" \
"sidorov Сидоров Иван dy5mrMiS"; do

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 145
    • Email
Не понял, вот это имеется ввиду что ли ( \ - перенос строки ) ?
for i in "ivanov Иванов Иван dy3mrMiS" \
"petrov Петров Иван dy4mrMiS" \
"sidorov Сидоров Иван dy5mrMiS"; do
Да! Именно это и нужно! Спасибо!  :)
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 145
    • Email
Вот бы ещё в базу LDAP подобным скриптом добавить пользователей...  :)
Сноси Винду, переходи на Линукс ! :)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Вот бы ещё в базу LDAP подобным скриптом добавить пользователей...  :)
/usr/sbin/ldap-useradd
Андрей Черепанов (cas@)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 145
    • Email
Вот бы ещё в базу LDAP подобным скриптом добавить пользователей...  :)
/usr/sbin/ldap-useradd
Спасибо.
Вот темку нашел похожую: http://forum.altlinux.org/index.php?topic=7608.0
Буду разбираться...
Только один вопрос: мне весь этот скрипт нужен или только конец (edit ldap) ?
Сноси Винду, переходи на Линукс ! :)