Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Добавление множества пользователей в SAMBA с генерацией паролей налету

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [*nix/Linux] >> Добавление множества пользователей в SAMBA с генерацией паролей налету
Имя
Сообщение << Старые топики   Новые топики >>
Добавление множества пользователей в SAMBA с генерацией паролей налету - 2010-10-05 09:56:24.420000   
AloneHate

Сообщений: 76
Оценки: 0
Присоединился: 2008-01-13 07:36:57.400000
Ситуация такая, нужно создать учётки для 100 пользователей на сервере и сгенерировать для каждого универсальный пароль, затем всё получившееся хозяйство нужно перетащить в базу пользователей samba.

Делается это для того, что бы каждый пользователь(в моём случае это студент) имел свою папочку на сервере и мог ходить с win машины только на неё и по своему паролю. Так вот встал вопрос как автоматизировать это процесс(создание пользователей сначала в системе(ubuntu server 10.04), а потом всё это продублировать в самбу)?

Заранее спасибо за идеи как это реализовать, тупо писать за себя скрипт никого не заставляю, прошу о помощи в принятии решения как это всё реализовать, буду рад любым советам и критике по теме.


Забыл сказать, что список пользователей которых нужно добавить - храниться в виде списка в файле
Post #: 1
RE: Добавление множества пользователей в SAMBA с генерацией паролей налету - 2010-10-05 15:50:37.903333   
alex117

Сообщений: 424
Оценки: 0
Присоединился: 2010-02-09 10:54:42.646666
Ну скрипт создания пользователей легко найти.
- в конце этого скрипта добавить smbpasswd с нужными ключами,
- потом добавить mkdir <path %username%> для создания личной папки пользователя
- потом chown 700 %username%
- далее  в папку netlogon профиля скопировать скрипт подключения сетевого диска с именем пути в п.2
Как-то так на скорую руку.
Если нужны заготовки скриптов, то могу дать.
Post #: 2
RE: Добавление множества пользователей в SAMBA с генерацией паролей налету - 2010-10-05 23:54:22.063333   
AloneHate

Сообщений: 76
Оценки: 0
Присоединился: 2008-01-13 07:36:57.400000

quote:

ORIGINAL: alex117

Ну скрипт создания пользователей легко найти.
- в конце этого скрипта добавить smbpasswd с нужными ключами,
- потом добавить mkdir &lt;path %username%&gt; для создания личной папки пользователя
- потом chown 700 %username%
- далее  в папку netlogon профиля скопировать скрипт подключения сетевого диска с именем пути в п.2
Как-то так на скорую руку.
Если нужны заготовки скриптов, то могу дать.


спасибо, буду разбираться пока )

quote:

Если нужны заготовки скриптов, то могу дать.


было бы здорово
Post #: 3
RE: Добавление множества пользователей в SAMBA с генерацией паролей налету - 2010-10-06 16:59:26.556666   
alex117

Сообщений: 424
Оценки: 0
Присоединился: 2010-02-09 10:54:42.646666
Тут скрипт для подключения сетевого диска http://letitbit.net/download/68110.69c23b1a41243a4691a41f53b5b3/netdisk_mapping.7z.html
А в этой книге на стр 266 есть примеры скриптов для создания пользователей и генерации случайных паролей.
http://linuxopen.ru/2009/11/17/sistemnoe-administrirovanie-v-linux.html
Извини за корявый топ, времени нету.
Post #: 4
RE: Добавление множества пользователей в SAMBA с генерацией паролей налету - 2010-10-07 20:17:59.836666   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: AloneHate
Ситуация такая, нужно создать учётки для 100 пользователей на сервере и сгенерировать для каждого универсальный пароль, затем всё получившееся хозяйство нужно перетащить в базу пользователей samba.

Как логины генерятся?
А вообще тривиально:GROUP=users MORE-GROUPS='floppy cdrom audio video' for l in logins; do p=`./passwdgen` useradd -g "$GROUP" -G "$GROUPS" -m -p `md5pass "$p" echo "created user $l with password' $p" doneЧтобы пользователи могли бы заходить в самбу – надо порыться в smbd.conf, там есть опции, чтобы системные логины-пароли использовать.
Ах да, код для passwdgen:#define _GNU_SOURCE #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; #include &lt;fcntl.h&gt; #include &lt;string.h&gt; char symbols[] = "12345678901234567890" "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ";:()[]{}.,?!@#$%^&*~\"'&lt;&gt;-_=+\\|`/"; void gen_passwd (int length, char *passwd) { int i; for (i = 0; i &lt; length; i ++) { int idx; idx = rand () % (sizeof (symbols) - 1); passwd[i] = symbols[idx]; } passwd[length] = '\0'; } int main (int argc, char *argv[]) { int i; int fd = open ("/dev/random", O_RDONLY); int n_syms = 8; char *passwd; read (fd, &i, 4); srand (i); close (fd); if (argc &gt; 1) { if (argc != 2) { printf ("usage: %s [PASSWORD_LENGTH]\n", argv[0]); return 1; } else { char *endptr; long num; num = strtol (argv[1], &endptr, 10); if (endptr == argv[1] || *endptr != '\0') { printf ("usage: %s [PASSWORD_LENGTH]\n", argv[0]); return 1; } else if (num &lt;= 0) { printf ("Please select a positive number.\n"); return 1; } n_syms = num; } } passwd = (char *)alloca (n_syms + 1); gen_passwd (n_syms, passwd); puts (passwd); return 0; } Список символов в начале программы (char symbols[]) задаёт те символы, которые будут использоваться для создания паролей. Если символ встречается несколько раз, то вероятность его появление будет больше.
Да, и ещё код для md5sum – эта программка входит в пакет syslinux, чтобы не ставить его и не искать в инете:#!/usr/bin/perl use bytes; use Crypt::PasswdMD5; use MIME::Base64; sub random_bytes($) { my($n) = @_; my($v, $i); if ( open(RANDOM, '&lt;', '/dev/random') || open(RANDOM, '&lt;', '/dev/urandom') ) { read(RANDOM, $v, $n); } else { # No real RNG available... srand($$ ^ time); $v = ''; for ( $i = 0 ; $i &lt; $n ; $i++ ) { $v .= ord(int(rand() * 256)); } } return $v; } ($pass, $salt) = @ARGV; unless (defined($salt)) { $salt = MIME::Base64::encode(random_bytes(6), ''); $salt =~ tr/\+/./; # . not + } print unix_md5_crypt($pass, $salt), "\n";
Post #: 5
RE: Добавление множества пользователей в SAMBA с генерацией паролей налету - 2010-10-19 17:09:54.013333   
AloneHate

Сообщений: 76
Оценки: 0
Присоединился: 2008-01-13 07:36:57.400000
Всем спасибо огромное за помощь, и за подсказки.
Пример rgo, у МЕНЯ(!) работать отказался, как не пытался я его подправить… сделал всё по своему )

привожу пример своих скриптов, может кому пригодится :)

первый скрипт запускает всю канетель - его задача добавлять пользователей из списка (log) и заносить результат своего выполнения в файл out.
#!/bin/bash while read LOGINS; do PASS=`./passwg` echo "$PASS" | useradd -m "$LOGINS" -g 100 -s "/bin/nologin" && (echo $PASS; echo $PASS) | smbpasswd -s -a $LOGINS echo $LOGINS $PASS &gt;&gt; out done &lt; log
В этом скрипте генерируется пароль, LENGTH = количество символов пароля.
#!/bin/bash LENGTH=8 base64 -w $LENGTH /dev/urandom | head -n 1
Вот в принципе и всё, основной скрипт получился ёмкий, но как же блин много времени я потратил на его написание. Бился очень долго со строчкой
(echo $PASS; echo $PASS) | smbpasswd -s -a $LOGINS чудом попался пример как добавлять пароль самбы в скрипте.
Post #: 6
Страниц:  [1]
Все форумы >> [*nix/Linux] >> Добавление множества пользователей в SAMBA с генерацией паролей налету







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.