Здравствуйте.
Как создать учетную запись в линухе используя cgi скрипт на перле, если в из формы в него передаются все необходимые переменные ($username, $passwd, $home_dir).
Заранее спасибо.
>Здравствуйте.
>Как создать учетную запись в линухе используя cgi скрипт на перле, если
>в из формы в него передаются все необходимые переменные ($username, $passwd,
>$home_dir).
>Заранее спасибо.
Из Веба?!!! Да вы, батенька, наверное шампанское полюбляете в немеряных количествах?!:)
Создать-то не проблема.
system ("/usr/sbin/useradd ...blah-blah-blah...")
Только ведь скрипт должен исполняться с правами рута.
Не боитесь?:)
>>Здравствуйте.
>>Как создать учетную запись в линухе используя cgi скрипт на перле, если
>>в из формы в него передаются все необходимые переменные ($username, $passwd,
>>$home_dir).
>>Заранее спасибо.
>Из Веба?!!! Да вы, батенька, наверное шампанское полюбляете в немеряных количествах?!:)
>Создать-то не проблема.
>system ("/usr/sbin/useradd ...blah-blah-blah...")
>Только ведь скрипт должен исполняться с правами рута.
>Не боитесь?:)почитайте про sudo
это не опасно при грамотном программировании.
>Из Веба?!!! Да вы, батенька, наверное шампанское полюбляете в немеряных количествах?!:)неужели невозможно создавать учетные записи через веб?
а как тогда создают веб-интерфейсы для юзеров для смены ftp паролей?
эти скрипты должны править /etc/passwd>Создать-то не проблема.
>system ("/usr/sbin/useradd ...blah-blah-blah...")это понятно. Но ведь
system ("/usr/sbin/useradd -p password -d /home_dir -g usersgroup");
создает юзера с открытым паролем в /etc/shadow и под таким юзером невозможно залогинется:(
Как это побороть?
>
>>Из Веба?!!! Да вы, батенька, наверное шампанское полюбляете в немеряных количествах?!:)
>
>неужели невозможно создавать учетные записи через веб?
>а как тогда создают веб-интерфейсы для юзеров для смены ftp паролей?
>эти скрипты должны править /etc/passwd
>
>>Создать-то не проблема.
>>system ("/usr/sbin/useradd ...blah-blah-blah...")
>
>это понятно. Но ведь
>system ("/usr/sbin/useradd -p password -d /home_dir -g usersgroup");
>создает юзера с открытым паролем в /etc/shadow и под таким юзером невозможно
>залогинется:(
>Как это побороть?
>это понятно. Но ведь
>system ("/usr/sbin/useradd -p password -d /home_dir -g usersgroup");
>создает юзера с открытым паролем в /etc/shadow и под таким юзером невозможно
>залогинется:(
>Как это побороть?
это же очевидно!
следующей строчкой:
system ("/usr/sbin/usermod -p password username");
>это же очевидно!
>следующей строчкой:
>system ("/usr/sbin/usermod -p password username");Все равно та же лажа:
в /etc/shadow пароль для юзера меняется на тот который указал в usermod -p;
остается видимым (не криптованым) и по ssh и ftp под этим юзером невозможно залогинется:(чем можно объяснить что при
useradd username -p password
usermod -p newpassword username
пароль не криптуется и нет возможности залогинется пока не сделаешь
passwd username и не поменяешь пароль на 3-ий вариант:)а passwd username делать не хочу:)
есть выход?
>нет возможности залогинется пока не сделаешь
>passwd username и не поменяешь пароль на 3-ий вариант:)
>
>а passwd username делать не хочу:)
>есть выход?
сорри, я имел ввиду именно passwd, а не usermod.
путаю периодически, кто из них шифрует пароль, а кто нет...а почему passwd username не хочешь?
неужели невозможно одной командой в линухе создать пользователся, определить для него пароль и после чего залогинется на этот аккаунт?
Чудеса...
какой смысл тогда в ключе -p для usermod и useradd, если после создания аккаунта невозможно пройти по паролю:)
Ответьте хоть кто нибудь... Где я ошибаюсь...PS. пробовал в RH и в mandrake - результат один.
>неужели невозможно одной командой в линухе создать пользователся, определить для него пароль
>и после чего залогинется на этот аккаунт?
>Чудеса...
>какой смысл тогда в ключе -p для usermod и useradd, если после
>создания аккаунта невозможно пройти по паролю:)
>Ответьте хоть кто нибудь... Где я ошибаюсь...
>
>PS. пробовал в RH и в mandrake - результат один.попробуйте криптовать сами и вносить в shadow уже криптованый пароль.
нужно использовать модуль Crypt::PasswdMD5 и функцию unix_md5_crypt
>попробуйте криптовать сами и вносить в shadow уже криптованый пароль.
>нужно использовать модуль Crypt::PasswdMD5 и функцию unix_md5_cryptспасибо Вам за помощь. Получилось.
Альтернативный вариант - создавать файл, содержащий необходимую информацию о пользователе, например /tmp/add и добавить в крон задание, которое каждые 15 минут, при наличии такого файла, будет запускать комманду, добавляющую пользователей. Например:
*/15 * * * * [ -r /tmp/add ] && /usr/bin/perl /usr/sbin/adduser -q < /tmp/add && rm -f /tmp/addФайл представлял собой последовательность строк типа:
======================
username
Full name
pass
passy
y
n
======================
Т.е. каждая строчка как бы вводилась при запросе скрипта.
Сделано это было на FreeBSD 4.5.При переходе на 5.1, оказалось что там для подобных нужд сделана специальная опция, позволяющая брать инфо о пользователе из файла, в котором все записи представлены примено так:
логин:имя:уид:...:...:...:...:пасс
логин:имя:уид:...:...:...:...:пасс
логин:имя:уид:...:...:...:...:пассТакой вариант может быть полезен для тех, кто не хочет запускать cgi скрипт от имени рута.