Приветствую.Подскажите как можно добавить пользователя и сразу же задать ему пароль. Скажем из скрипта. Подходят любые варианты perl/sh/c++.
Всего доброго.
>Приветствую.
>
>Подскажите как можно добавить пользователя и сразу же задать ему пароль. Скажем
>из скрипта. Подходят любые варианты perl/sh/c++.
>
>
>Всего доброго.
смотри
man pw
>Приветствую.
>
>Подскажите как можно добавить пользователя и сразу же задать ему пароль. Скажем
>из скрипта. Подходят любые варианты perl/sh/c++.
>
>
>Всего доброго.
нет у меня такого man. Забыл добавить - система - linux
>>Приветствую.
>>
>>Подскажите как можно добавить пользователя и сразу же задать ему пароль. Скажем
>>из скрипта. Подходят любые варианты perl/sh/c++.
>>
>>
>>Всего доброго.
>
>
>нет у меня такого man. Забыл добавить - система - linuxпоиск по форуму, только недавно расписывали
>>>Приветствую.
>>>
>>>Подскажите как можно добавить пользователя и сразу же задать ему пароль. Скажем
>>>из скрипта. Подходят любые варианты perl/sh/c++.
>поиск по форуму, только недавно расписывали
Слакваревский скрипт adduser - создает юзера, добавляет в группы, создает home и просит ввести пароль. Порт в gentoo называется superadduser
>>>Приветствую.
>>>
>>>Подскажите как можно добавить пользователя и сразу же задать ему пароль. Скажем
>>>из скрипта. Подходят любые варианты perl/sh/c++.
>>>
>>>
>>>Всего доброго.
>>
>>
>>нет у меня такого man. Забыл добавить - система - linux
>
>поиск по форуму, только недавно расписывалиПлохо ищу? Или нет того что нужно?
>
>Плохо ищу? Или нет того что нужно?А тот скрипт, про который я писал, посмотрел? Ж8-)
>>
>>Плохо ищу? Или нет того что нужно?
>
>А тот скрипт, про который я писал, посмотрел? Ж8-)
Это шутка? Ты сам его смотрел? Он так-же как adduser слакваревский работет. Всмысле тоже в итоге запускается passwd.Что бы упростить вопрос (я имею ввиду по кол-ву решений) поставлю его следующим образом: "Как зашифровать пароль в C/C++". Нужно максимально простое решение. Слил исходники passwd, но моей компетенции видимо не достаточно что бы понять что там к чему. В частности libshadow_md5_crypt(...), crypt(...) (ну это ясно что из libcrypt, посмотрел header в /usr/include), и откуда вообще брать salt... Но если можете предложить более простые решения будет хорошо.
Вопрос очень срочный и все еще открыт.
Заранее спасибо.
>Это шутка? Ты сам его смотрел? Он так-же как adduser слакваревский работет.
>Всмысле тоже в итоге запускается passwd.
И чем это плохо?>Что бы упростить вопрос (я имею ввиду по кол-ву решений) поставлю его
>следующим образом: "Как зашифровать пароль в C/C++". Нужно максимально простое решение.
>Слил исходники passwd, но моей компетенции видимо не достаточно что бы
>понять что там к чему. В частности libshadow_md5_crypt(...), crypt(...) (ну это
>ясно что из libcrypt, посмотрел header в /usr/include), и откуда вообще
>брать salt... Но если можете предложить более простые решения будет хорошо.
Кто мешает просто вызвать passwd из программы... А так как исходно стоял вопрос о скриптах - там же есть скрипт batch добавления пользователей из файла, ссодержащего имена и пароли... Hint - смотри man useradd, там ему в параметре -p передается пароль... все на шелле пишется
>из файла, ссодержащего имена и пароли... Hint - смотри man useradd,
>там ему в параметре -p передается пароль... все на шелле пишетсяДа я вообще в курсе про -p, только он ему уже зашифрованый нужен.
>>из файла, ссодержащего имена и пароли... 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 ABP.S. Vse ostalnoje jest v man 3 crypt
>>>из файла, ссодержащего имена и пароли... 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.
>>>>из файла, ссодержащего имена и пароли... 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 ?
Спасибо. Все решил. Отдельное спасибо Brainbug'у.
p.s. но откуда *salt брать никак не пойму.
>
>Спасибо. Все решил. Отдельное спасибо 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).
>>
>>Спасибо. Все решил. Отдельное спасибо 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).
странно. извини за тупизм :)
#!/bin/sh
...
echo тут-пароль-нового-юзера | pw useradd тут-имя-нового-юзера \
-c тут-описание-нового-юзера -m \
-d тут-домашний-каталог-нового-юзера \
-s тут-шелл-нового-юзера -h 0 2>&1
if [ "$?" = "0" ]
then
...
# Получилось :-)
...
else
...
# Не получилось :-(
...
fi
Постым и примитивным шеллом тыкскыть ;-)
>#!/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 ; }
>>#!/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");