Добавление множества пользователей в SAMBA с генерацией паролей налету
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Добавление множества пользователей в 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), а потом всё это продублировать в самбу)? Заранее спасибо за идеи как это реализовать, тупо писать за себя скрипт никого не заставляю, прошу о помощи в принятии решения как это всё реализовать, буду рад любым советам и критике по теме. Забыл сказать, что список пользователей которых нужно добавить - храниться в виде списка в файле
|
|
|
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 Как-то так на скорую руку. Если нужны заготовки скриптов, то могу дать.
|
|
|
RE: Добавление множества пользователей в SAMBA с генерацией паролей налету - 2010-10-05 23:54:22.063333
|
|
|
AloneHate
Сообщений: 76
Оценки: 0
Присоединился: 2008-01-13 07:36:57.400000
|
quote:
ORIGINAL: alex117 Ну скрипт создания пользователей легко найти. - в конце этого скрипта добавить smbpasswd с нужными ключами, - потом добавить mkdir <path %username%> для создания личной папки пользователя - потом chown 700 %username% - далее в папку netlogon профиля скопировать скрипт подключения сетевого диска с именем пути в п.2 Как-то так на скорую руку. Если нужны заготовки скриптов, то могу дать. спасибо, буду разбираться пока ) quote:
Если нужны заготовки скриптов, то могу дать. было бы здорово
|
|
|
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 <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <string.h>
char symbols[] = "12345678901234567890"
"abcdefghijklmnopqrstuvwxyz"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
";:()[]{}.,?!@#$%^&*~\"'<>-_=+\\|`/";
void gen_passwd (int length, char *passwd)
{
int i;
for (i = 0; i < 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 > 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 <= 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, '<', '/dev/random') ||
open(RANDOM, '<', '/dev/urandom') ) {
read(RANDOM, $v, $n);
} else {
# No real RNG available...
srand($$ ^ time);
$v = '';
for ( $i = 0 ; $i < $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";
|
|
|
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 >> out
done < log
В этом скрипте генерируется пароль, LENGTH = количество символов пароля.
#!/bin/bash
LENGTH=8
base64 -w $LENGTH /dev/urandom | head -n 1
Вот в принципе и всё, основной скрипт получился ёмкий, но как же блин много времени я потратил на его написание. Бился очень долго со строчкой (echo $PASS; echo $PASS) | smbpasswd -s -a $LOGINS чудом попался пример как добавлять пароль самбы в скрипте.
|
|
|
|
|