Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

Re: lug-bg: exec na script prez web


  • Subject: Re: lug-bg: exec na script prez web
  • From: Momchil Ivanov <idiotbg@xxxxxxxxx>
  • Date: Sat, 9 Jul 2005 09:44:30 +0200
  • Delivered-to: lug-bg-list@xxxxxxxxxxxxxxxxxx
  • Delivered-to: lug-bg@xxxxxxxxxxxxxxxxxx

On 7/9/05, gggg ggg <gashti_dolu@xxxxxxxxx> wrote:
> zdraveite,
> imam 2 scripta : edinia diga interfeisi i prenastroiva
> rutingi i t.n., a drugia pravi to4no obratnoto, t.e.
> edinia puska neshtata , a drugia gi spira.
> 
> iskam da moje ot web da se puskat scriptovete, bez
> zna4enie dali s PHP,Perl,CGI-niakakuv, SH ili kakvoto
> i da e.
> 

може

> problema mi e 4e ne moga da izvikam scriptowete ot
> web,apache gi stopira.razrovih mu po4ti vsi4koto
> secure i podiviah ve4e. daite malko help za tova
> ,kolkoto i prosto da izglejda.

как извикваш скриптовете?

> 
> g.
> 
> P.S. Slack 10.1
> 
> 
> 
> 
> ____________________________________________________
> Sell on Yahoo! Auctions ? no fees. Bid on great items.
> http://auctions.yahoo.com/
> 


вариантите са няколко
1)
 зареждаш си CGI модула на апачето, даваш на скрипта +х (за да може да
се изпълнява) и след това го извикваш през уеб (http://test/test.sh)
например

2)
правиш си Perl/PHP скрипт и в него извикваш съответния скрипт

php:
<?php echo exec('/path/to/script 2>&1'); ?>
това ще ти изпълни скрипта и ще изведе резултата (ако скриптът връща такъв)

perl:
$output = `/path/to/script 2>&1`;
print $output;


Тук вече има едно голямо НО! И при двата случая потребителят, който
използва апачето трябва да има права да изпълнява операциите, които
съдържа скрипта (ifconfig, iptables, etc.....). Едно решение на този
проблем е да не викаш директно скриптовете, а да викаш други програми
(които от своя страна викат скриптовете). Аз  правя така: извиквам
проста програмка (собственост на root със сетнат setuid флаг), а тя ми
извиква скрипта
Ето я и програмка:

int main() {
setuid(0);
setgid(0);
execvp("/path/to/scipt");
}



 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.