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");
}
|