URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 46502
[ Назад ]

Исходное сообщение
"Passwd and UserAdd"

Отправлено daclip , 26-Июл-04 17:12 
Приветствую.

Подскажите как можно добавить пользователя и сразу же задать ему пароль. Скажем из скрипта. Подходят любые варианты perl/sh/c++.


Всего доброго.


Содержание

Сообщения в этом обсуждении
"Passwd and UserAdd"
Отправлено Topik , 26-Июл-04 17:33 
>Приветствую.
>
>Подскажите как можно добавить пользователя и сразу же задать ему пароль. Скажем
>из скрипта. Подходят любые варианты perl/sh/c++.
>
>
>Всего доброго.


смотри
man pw


"Passwd and UserAdd"
Отправлено daclip , 26-Июл-04 17:36 
>Приветствую.
>
>Подскажите как можно добавить пользователя и сразу же задать ему пароль. Скажем
>из скрипта. Подходят любые варианты perl/sh/c++.
>
>
>Всего доброго.


нет у меня такого man. Забыл добавить - система - linux


"Passwd and UserAdd"
Отправлено lavr , 26-Июл-04 19:46 
>>Приветствую.
>>
>>Подскажите как можно добавить пользователя и сразу же задать ему пароль. Скажем
>>из скрипта. Подходят любые варианты perl/sh/c++.
>>
>>
>>Всего доброго.
>
>
>нет у меня такого man. Забыл добавить - система - linux

поиск по форуму, только недавно расписывали


"Passwd and UserAdd"
Отправлено _KAV_ , 26-Июл-04 20:56 
>>>Приветствую.
>>>
>>>Подскажите как можно добавить пользователя и сразу же задать ему пароль. Скажем
>>>из скрипта. Подходят любые варианты perl/sh/c++.
>поиск по форуму, только недавно расписывали
Слакваревский скрипт adduser - создает юзера, добавляет в группы, создает home и просит ввести пароль. Порт в gentoo называется superadduser


"Passwd and UserAdd"
Отправлено daclip , 26-Июл-04 20:57 
>>>Приветствую.
>>>
>>>Подскажите как можно добавить пользователя и сразу же задать ему пароль. Скажем
>>>из скрипта. Подходят любые варианты perl/sh/c++.
>>>
>>>
>>>Всего доброго.
>>
>>
>>нет у меня такого man. Забыл добавить - система - linux
>
>поиск по форуму, только недавно расписывали

Плохо ищу? Или нет того что нужно?


"Passwd and UserAdd"
Отправлено _KAV_ , 27-Июл-04 10:48 
>
>Плохо ищу? Или нет того что нужно?

А тот скрипт, про который я писал, посмотрел? Ж8-)


"Passwd and UserAdd"
Отправлено daclip , 27-Июл-04 11:31 
>>
>>Плохо ищу? Или нет того что нужно?
>
>А тот скрипт, про который я писал, посмотрел? Ж8-)


Это шутка? Ты сам его смотрел? Он так-же как adduser слакваревский работет. Всмысле тоже в итоге запускается passwd.

Что бы упростить вопрос (я имею ввиду по кол-ву решений) поставлю его следующим образом: "Как зашифровать пароль в C/C++". Нужно максимально простое решение. Слил исходники passwd, но моей компетенции видимо не достаточно что бы понять что там к чему. В частности libshadow_md5_crypt(...), crypt(...) (ну это ясно что из libcrypt, посмотрел header в /usr/include), и откуда вообще брать salt... Но если можете предложить более простые решения будет хорошо.

Вопрос очень срочный и все еще открыт.
Заранее спасибо.


"Passwd and UserAdd"
Отправлено _KAV_ , 27-Июл-04 11:47 
>Это шутка? Ты сам его смотрел? Он так-же как adduser слакваревский работет.
>Всмысле тоже в итоге запускается passwd.
И чем это плохо?

>Что бы упростить вопрос (я имею ввиду по кол-ву решений) поставлю его
>следующим образом: "Как зашифровать пароль в C/C++". Нужно максимально простое решение.
>Слил исходники passwd, но моей компетенции видимо не достаточно что бы
>понять что там к чему. В частности libshadow_md5_crypt(...), crypt(...) (ну это
>ясно что из libcrypt, посмотрел header в /usr/include), и откуда вообще
>брать salt... Но если можете предложить более простые решения будет хорошо.
Кто мешает просто вызвать passwd из программы... А так как исходно стоял вопрос о скриптах - там же есть скрипт batch добавления пользователей из файла, ссодержащего имена и пароли... Hint - смотри man useradd, там ему в параметре -p передается пароль... все на шелле пишется



"Passwd and UserAdd"
Отправлено daclip , 27-Июл-04 11:49 
>из файла, ссодержащего имена и пароли... Hint - смотри man useradd,
>там ему в параметре -p передается пароль... все на шелле пишется

Да я вообще в курсе про -p, только он ему уже зашифрованый нужен.


"Passwd and UserAdd"
Отправлено Brainbug , 27-Июл-04 12:02 
>>из файла, ссодержащего имена и пароли... Hint - смотри man useradd,
>>там ему в параметре -p передается пароль... все на шелле пишется
>
>Да я вообще в курсе про -p, только он ему уже зашифрованый
>нужен.

Samoj prostoi varinat:
йt crupt.c
#include <stdio.h>
#define _XOPEN_SOURCE
#include <unistd.h>

int main(int argc, char **argv){
printf("%s\n",crypt(argv[1],argv[2]));
return 0;
}

л -o crypt crypt.c -lcrypt
%./crypt <parol> <salt> #naprimer crypt qwerty AB

P.S. Vse ostalnoje jest v man 3 crypt


"Passwd and UserAdd"
Отправлено Brainbug , 27-Июл-04 12:08 
>>>из файла, ссодержащего имена и пароли... Hint - смотри man useradd,
>>>там ему в параметре -p передается пароль... все на шелле пишется
>>
>>Да я вообще в курсе про -p, только он ему уже зашифрованый
>>нужен.
>
>Samoj prostoi varinat:
>йt crupt.c
>#include <stdio.h>
>#define _XOPEN_SOURCE
>#include <unistd.h>
>
>int main(int argc, char **argv){
> printf("%s\n",crypt(argv[1],argv[2]));
> return 0;
>}
>
>л -o crypt crypt.c -lcrypt
>%./crypt <parol> <salt> #naprimer crypt qwerty AB
>
>P.S. Vse ostalnoje jest v man 3 crypt
Nebol6ije izmenenija:
1) л -o crypt crypt.c -lcrypt == cc -o crypt crypt.c -lcrypt
2) esli v kakom nibud skripte ispolzovat togda naverno lu46e vset-taki tak printf("%s",crypt(argv[1],argv[2])); Nado probovat.


"Passwd and UserAdd"
Отправлено daclip , 27-Июл-04 12:16 
>>>>из файла, ссодержащего имена и пароли... Hint - смотри man useradd,
>>>>там ему в параметре -p передается пароль... все на шелле пишется
>>>
>>>Да я вообще в курсе про -p, только он ему уже зашифрованый
>>>нужен.
>>
>>Samoj prostoi varinat:
>>йt crupt.c
>>#include <stdio.h>
>>#define _XOPEN_SOURCE
>>#include <unistd.h>
>>
>>int main(int argc, char **argv){
>> printf("%s\n",crypt(argv[1],argv[2]));
>> return 0;
>>}
>>
>>л -o crypt crypt.c -lcrypt
>>%./crypt <parol> <salt> #naprimer crypt qwerty AB
>>
>>P.S. Vse ostalnoje jest v man 3 crypt
>Nebol6ije izmenenija:
>1) л -o crypt crypt.c -lcrypt == cc -o crypt crypt.c -lcrypt
>
>2) esli v kakom nibud skripte ispolzovat togda naverno lu46e vset-taki tak
>printf("%s",crypt(argv[1],argv[2])); Nado probovat.

А если md5 в /etc/shadow ?

"Passwd and UserAdd"
Отправлено daclip , 27-Июл-04 12:19 

Спасибо. Все решил. Отдельное спасибо Brainbug'у.
p.s. но откуда *salt брать никак не пойму.

"Passwd and UserAdd"
Отправлено Brainbug , 27-Июл-04 12:37 
>
>Спасибо. Все решил. Отдельное спасибо Brainbug'у.
>p.s. но откуда *salt брать никак не пойму.

man crypt:
GNU EXTENSION
       The glibc2 version of this function has the following  additional  fea-
       tures.   If  salt is a character string starting with the three charac-
       ters "$1$" followed by at most eight characters, and optionally  termi-
       nated  by  "$",  then instead of using the DES machine, the glibc crypt
       function uses an MD5-based algorithm,  and  outputs  up  to  34  bytes,
       namely  "$1$<string>$", where "<string>" stands for the up to 8 charac-
       ters following "$1$" in the salt, followed by 22 bytes chosen from  the
       set [aâzAâZ0â9./].  The entire key is significant here (instead of only
       the first 8 bytes).


"Passwd and UserAdd"
Отправлено daclip , 27-Июл-04 12:40 
>>
>>Спасибо. Все решил. Отдельное спасибо Brainbug'у.
>>p.s. но откуда *salt брать никак не пойму.
>
>man crypt:
>GNU EXTENSION
>       The glibc2 version of this
>function has the following  additional  fea-
>       tures.   If  
>salt is a character string starting with the three charac-
>       ters "$1$" followed by at
>most eight characters, and optionally  termi-
>       nated  by  "$",
> then instead of using the DES machine, the glibc crypt
>
>       function uses an MD5-based algorithm,
> and  outputs  up  to  34  
>bytes,
>       namely  "$1$<string>$", where "<string>" stands for the up to 8 charac-
>       ters following "$1$" in the
>salt, followed by 22 bytes chosen from  the
>       set [aâzAâZ0â9./].  The entire
>key is significant here (instead of only
>       the first 8 bytes).


странно. извини за тупизм :)


"Passwd and UserAdd"
Отправлено aljil , 27-Июл-04 15:12 
#!/bin/sh
...
echo тут-пароль-нового-юзера | pw useradd тут-имя-нового-юзера \
-c тут-описание-нового-юзера -m \
-d тут-домашний-каталог-нового-юзера \
-s тут-шелл-нового-юзера -h 0 2>&1
if [ "$?" = "0" ]
then
   ...
#   Получилось :-)
   ...
else
   ...
#   Не получилось :-(
   ...
fi
Постым и примитивным шеллом тыкскыть ;-)

"Passwd and UserAdd"
Отправлено Brainbug , 27-Июл-04 15:38 
>#!/bin/sh
>...
>echo тут-пароль-нового-юзера | pw useradd тут-имя-нового-юзера \
>-c тут-описание-нового-юзера -m \
>-d тут-домашний-каталог-нового-юзера \
>-s тут-шелл-нового-юзера -h 0 2>&1
>if [ "$?" = "0" ]
>then
>   ...
>#   Получилось :-)
>   ...
>else
>   ...
>#   Не получилось :-(
>   ...
>fi
>Постым и примитивным шеллом тыкскыть ;-)

Naskolko mne izvestno v Linux pw netu.
A vot variant takoi vpolne vozmozen (RedHat 9.0):
[test@test test]# /usr/sbin/useradd user_name && { echo user_password | /usr/bin/passwd user_name --stdin ; }


"Passwd and UserAdd"
Отправлено daclip , 27-Июл-04 17:08 
>>#!/bin/sh
>>...
>>echo тут-пароль-нового-юзера | pw useradd тут-имя-нового-юзера \
>>-c тут-описание-нового-юзера -m \
>>-d тут-домашний-каталог-нового-юзера \
>>-s тут-шелл-нового-юзера -h 0 2>&1
>>if [ "$?" = "0" ]
>>then
>>   ...
>>#   Получилось :-)
>>   ...
>>else
>>   ...
>>#   Не получилось :-(
>>   ...
>>fi
>>Постым и примитивным шеллом тыкскыть ;-)
>
>Naskolko mne izvestno v Linux pw netu.
>A vot variant takoi vpolne vozmozen (RedHat 9.0):
>[test@test test]# /usr/sbin/useradd user_name && { echo user_password | /usr/bin/passwd user_name --stdin
>; }


Лана... Все проще оказалось. Если не на Сях то perl:

$username="user5";
$password="simplepassword";
$password=crypt($password, "AB");
system("/.../.../useradd -p$password $user");