Mirgorod
@Mirgorod

Добавление Unix-пользователя с помощью CGI?

Здравствуйте, возникла проблема с добавлением пользователей в Linux при помощи CGI-интерфейса.


Есть простой perl-скрипт index.cgi, его содержимое:
my $ex_result = `sh /add_ser.sh omagadble passwordble`;
  print $ex_result;
  die "Users must be added";


И add_ser.sh:
#!/usr/bin/sh

useradd -g ftp-users -d /home/ftp-docs $1
echo "$2" | passwd --stdin $1



При ручном запуске add_ser.sh новый пользователь добавляется:
sh /add_ser.sh new_login new_password

Но при помощи index.cgi работать не хочет и ничего не возвращает.


В чём может быть проблема?
  • Вопрос задан
  • 2727 просмотров
Пригласить эксперта
Ответы на вопрос 6
ENargit
@ENargit
Возможно, в привилегиях.

useradd, вообще-то, по умолчанию запускается только с правами root. CGI, с большой долей вероятности правами root не наделен, и правильно. При «обычном запуске» — Вы от рута запускаете, что оно работает? Или в вашей конфигурации разрешено использование useradd сторонними пользователями?

В крайнем случае — перенаправьте вывод команды useradd… > useradd.log 2> useradd.err.log. И посмотрите, что будет
Ответ написан
@Jazzist
В правах.
Ответ написан
Комментировать
@Jazzist
посмотрите системный лог сервера
Ответ написан
MpaK999
@MpaK999
Буду!
Посмотрите в сторону Sudo, Suexec
Ответ написан
Комментировать
@bdmalex
Cмотреть:
1) Права
2) Если запускаете через веб — не забываете первые Html строки возвращать…
Ответ написан
pentarh
@pentarh
суидные CGI скрипты это жесть ))

Вообще лучше делать через рутовый крон. Скрипт пишет инфу о добавлении юзера в базу например, а крон уже запускаясь от рута, добавляет юзеров.

Не используйте SUID/sudo в CGI ))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы