On 7/9/05, gggg ggg <[EMAIL PROTECTED]> 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 �C 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");
}

Reply via email to