Страница 1 из 1

perl + system()

Добавлено: 2008-09-05 0:22:53
lymar
Помогите решить проблему system не обробатывет даную команду .. сама команда для создания почтовго юзера работает ..

Код: Выделить всё

system("pw adduser xxxx -g mail -s /sbin/nologin -c xxxx xxx");

Re: perl + system()

Добавлено: 2008-09-05 0:35:00
hizel
под рутом перл пускаем?
хорошобы писать полный путь до pw

Re: perl + system()

Добавлено: 2008-09-05 0:43:49
lymar
1. да
2. не помогает (

Re: perl + system()

Добавлено: 2008-09-05 6:08:37
zg

Код: Выделить всё

system("echo xxx:mail:::::... | pw -f");
суть такая - pw может добавлять пользователей из файла, файлом служит echo, просто пароль в pw нужно указвать с клавиатуры, из скриптов я всегда юзаю так.

Re: perl + system()

Добавлено: 2008-09-05 11:57:43
lymar
..а как по другому можно решить даную проблемму? .. дело в том, что я сделал страничку для регистрации почтовых ящиков пользователей .. т.е. есть поля: ФИО, логин и кн. зарегистрировать. :(

Re: perl + system()

Добавлено: 2008-09-05 12:03:25
zg

Код: Выделить всё

man 5 passwd
там рсаписан формат полей и их порядок, эти поля указываеются через двоеточие, а потом перенаправляются в pw

вечером проверю, если что скажу

Re: perl + system()

Добавлено: 2008-09-05 13:19:09
Alex Keda

Код: Выделить всё

echo '$1$xxxxxxxxxxxxxxxxx' | /usr/sbin/pw useradd andy -d /usr/home/andy -G wheel -L russian -c 'Andrey Vedischev' -m -s /bin/csh -H 0
пароль уже криптованный.

Re: perl + system()

Добавлено: 2008-09-05 14:38:44
lymar
Пробовал так:

Код: Выделить всё

system("echo '$1$xxxxxxxxxxxxxxxxx' | /usr/sbin/pw useradd andy -d /usr/home/andy -G wheel -L russian -c 'Andrey Vedischev' -m -s /bin/csh -H 0");
всеравно учетка не создаеться :(
сам cgi приклагаю..

Re: perl + system()

Добавлено: 2008-09-05 15:26:14
zg
я был неправ и гнал пургу :-D исправляюсь

Код: Выделить всё

echo zg::wheel:russian::::::parol | adduser -f
о как у меня было сделано :cf:

Re: perl + system()

Добавлено: 2008-09-08 7:57:59
lymar
Всеравно не создает юзера :cry: . Если к примеру просто пишу

Код: Выделить всё

system("cp /etc/passwd /home");
то выполняет.

Re: perl + system()

Добавлено: 2008-09-08 8:03:47
zg
а просто из коммандной строки добавляет?

Re: perl + system()

Добавлено: 2008-09-08 8:21:38
lymar
да

Re: perl + system()

Добавлено: 2008-09-08 9:33:12
zg
значит дело в перле, либо в путях, вобщем надо курить маны

кстати, чего выводит

Код: Выделить всё

system('echo $PATH');

Re: perl + system()

Добавлено: 2008-09-08 9:37:15
zingel
а если через

Код: Выделить всё

my $sys = `/bin/cp /etc/passwd /home`;
кавычки обратные то есть если юзать вместо system?

Re: perl + system()

Добавлено: 2008-09-08 9:39:03
zg
zingel писал(а):кавычки обратные то есть если юзать вместо system?
а в чём разница? по-моему это просто алиас либо для exec либо для system

Re: perl + system()

Добавлено: 2008-09-08 9:41:02
zingel
zg писал(а):
zingel писал(а):кавычки обратные то есть если юзать вместо system?
а в чём разница? по-моему это просто алиас либо для exec либо для system
эт да, ну тогда запустить скрипт по

Код: Выделить всё

perl -d /path/to/sript.pl 
да и посмотреть, что скажет дебаг....