The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"useradd из файла"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"useradd из файла"  +/
Сообщение от zk on 05-Дек-05, 18:25 
По сайту/форуму искал, ненашёл.

Не подскажите как из файла в формате :

username password
username password
... ...

Добавить пользователей в систему.

Заранее благодарен.

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "useradd из файла"  +/
Сообщение от Sew on 06-Дек-05, 05:15 
pw useradd vasya -g группа -s каталог
passwd vasya
------------
Других варианов нет!, может ключи к pw useradd есть - незнаю!
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "useradd из файла"  +/
Сообщение от zk on 06-Дек-05, 11:50 
>pw useradd vasya -g группа -s каталог
>passwd vasya
>------------
>Других варианов нет!, может ключи к pw useradd есть - незнаю!

Спасибо что подсказал про pw, очень хорошая вещь.

Я вообще админ начинающий, и поневоле, bash скриптами не владею, если я напишу скрипт на PHP это будет очень плохо?
Какие есть недостатки у пхп скриптов для оболочек?


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "useradd из файла"  +/
Сообщение от zk on 06-Дек-05, 12:05 
И ещё. Ну юзеров я с помощью пхп скрипта запихал, очень удобно кстати, прямо из таблички опенофис кальк, как бы вот им ещё пароли из этой же таблички назначить, ведь passwd штука интерактивная, и ей в параметрах пароль не передашь. =/
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "useradd из файла"  +/
Сообщение от jd (??) on 06-Дек-05, 22:12 
>И ещё. Ну юзеров я с помощью пхп скрипта запихал, очень удобно
>кстати, прямо из таблички опенофис кальк, как бы вот им ещё
>пароли из этой же таблички назначить, ведь passwd штука интерактивная, и
>ей в параметрах пароль не передашь. =/

usermod -p ...
Только ему надо давать закриптованный пароль. Из man usermod(8):
...
  -p passwd
    The encrypted password, as returned by crypt(3).
...

Скрипты, в общем-то конечно всё-равно, на чём писать, лишь бы удобно было. Но и в bash ничего мудрёного нет. И ещё хорошо бы было подумать о том, кто возможно будет в этом когда-нибудь потом разбираться (хотя это, разумеется, уже ваше личное дело).

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "useradd из файла"  +/
Сообщение от idle (ok) on 07-Дек-05, 11:24 
>И ещё. Ну юзеров я с помощью пхп скрипта запихал, очень удобно
>кстати, прямо из таблички опенофис кальк, как бы вот им ещё
>пароли из этой же таблички назначить, ведь passwd штука интерактивная, и
>ей в параметрах пароль не передашь. =/
Используйте pw -h.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "useradd из файла"  +/
Сообщение от zk on 07-Дек-05, 13:22 
>Используйте pw -h.

Что-то я непойму что за дескриптор ему надо передавать???
Может поясните?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "useradd из файла"  +/
Сообщение от zk on 07-Дек-05, 13:49 
>>Используйте pw -h.

pw useradd testmy -g 6 -c comm -d /var/mail/ -s /sbin/nologin -h 0 << test11

в таком виде не работает.

pw useradd testmy -g 6 -c comm -d /var/mail/ -s /sbin/nologin -h 0 < test11

вот так работает, но надо чтобы был файлик test11 в котором содержится пароль, а хотелось бы чтобы пароль задавался в строке.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "useradd из файла"  +/
Сообщение от idle (ok) on 07-Дек-05, 13:59 
>>>Используйте pw -h.
>
>pw useradd testmy -g 6 -c comm -d /var/mail/ -s /sbin/nologin -h
>0 << test11
>
>в таком виде не работает.
>
>pw useradd testmy -g 6 -c comm -d /var/mail/ -s /sbin/nologin -h
>0 < test11
>
>вот так работает, но надо чтобы был файлик test11 в котором содержится
>пароль, а хотелось бы чтобы пароль задавался в строке.
echo password | pw useradd testmy -g 6 -c comm -d /var/mail/ -s /sbin/nologin -h 0


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "useradd из файла"  +/
Сообщение от zk on 07-Дек-05, 15:20 
>echo password | pw useradd testmy -g 6 -c comm -d /var/mail/ -s /sbin/nologin -h 0

Большое спасибо!!! Работет =)
Я думаю мой скрипт на пхп никому тут не нужен. Так что то что получилось - писать не буду =)


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "useradd из файла"  +/
Сообщение от dimcha email(??) on 07-Дек-05, 13:53 
вот добавление записи на Perl(кусок кода):

$r = sprintf ( "%s:%s:%d:1000::0:0:user:%s:/rbin/sh_users",
      $login, crypt ($password, "salt"), $uid, $dir );

open (A, ">>/etc/master.passwd") || die "Can't open master.passwd\n";
print A "$r\n";
close (A);
`/sbin/pwd_mkdb -u $login /etc/master.passwd`;

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "useradd из файла"  +/
Сообщение от Forth (??) on 08-Дек-05, 09:05 
>>Используйте pw -h.
>
>Что-то я непойму что за дескриптор ему надо передавать???
>Может поясните?
Дескриптор файла. Передадите 0 - прочитает пароль из стандартного ввода.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "useradd из файла 'useradd из файла' на cpp"  +/
Сообщение от Дмитрий email(??) on 16-Ноя-09, 13:29 
Вот вариант на срр. Компилил для себя под gcc.
Если конечно кому нибуть интересно.. Я кинул прогу в сбин и юзаю. довольно таки удобно.
В параметр передается файл... pw катит на фри.. а вот под линуксами надо еще помучится.


#include <unistd.h>
#include <stdio.h>
#include <string.h>

int main(int argc, char* argv[])
{
char stroka[100], tmp[100];
char* pch;
char* paruserpass[100];
char* cryptpass;
FILE* fp;

    stroka[0]=0;

    if (argc != 2) {
    printf("Использовать как: %s <Имя файла> \n", argv[0]);
    exit(0);
    }
            //открытие файла
    fp = fopen(argv[1],"rw");
    if (fp==NULL) {perror ("Ошибка открытия файла"); return -1;}

    while (!feof(fp)) {
        fgets (stroka , 100 , fp);

    //сдесь в ковычках перечисляется через какие знаки препинания расположены пользователь и пароль.
    //У меня настроено как через пробел или таб или запятую.
    pch = strtok (stroka," ,\t");

    int n = 0;
    while (pch != NULL)
        {//printf ("%s\n",pch);
        paruserpass[n]= pch;
        n++;

        //сдесь в ковычках перечисляется через какие знаки препинания расположены пользователь и пароль.
        //У меня настроено как через пробел или таб или запятую.
        pch = strtok (NULL, " .\t");
        }

    printf("\n ------------------------------------------------- \n\n");

    tmp[0] = 0;
    cryptpass = crypt(paruserpass[1], strcat(strcat(tmp, "$1$"),paruserpass[0]));
    printf("Пользователь:%s\n Пароль:%s\n Криптованный пароль:%s\n",paruserpass[0],paruserpass[1],cryptpass);
    tmp[0] = 0;

    // Ну сдесь тупо собираем строку команды useradd по своему вкусу.
    system(strcat(strcat(strcat(strcat(strcat(tmp,"useradd "),paruserpass[0])," -p '"),cryptpass),"' -g users"));

    printf("\n ------------------------------------------------- \n");

        stroka[0]=0;
        }
    fclose(fp);
return 0;
}

Ну и компилим
cc <имя исходника> -o <Имя получившийся программы> -lcrypt
   кому понадобилось -> рад был помоч, за код сильно не придираемся, работает на 100%.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру