On Wednesday 02 January 2002 17:42, you wrote:
> saya punya masalah nih....
> yg pasti karena saya tidak punya pengetahuan ttg bahasa C/C++
> saya punya shell script seperti di bawah ini...
>
> #!/bin/sh
> /sbin/ipchains -D input -s 192.168.1.1 -j REJECT -p TCP -d 0/0 $1
> .
> .
> /sbin/ipchains -D input -s 192.168.1.16 -j REJECT -p TCP -d 0/0 $1
>
> kalau script ini dijalankan..misalnya nama script ini hidup.sh
> # hidup.sh 80
> maka akan dilakukan sesuatu pada port 80
>
> nah kemudian saya buat prograom C sbb:
>
> #include <stdio.h>
>
> main()
> {
> setuid(0);
> setgid(0);
> system("./depan.sh");
> }
>
> setelah di compile nama program C ini adalah : depan
> tapi bila dijalankan :
> # depan 80
> maka operasi yg dijalankan adalah untuk semua port....
> kenapa ya....
Program anda cukup berbahaya :(, tapi sebagai solusi
argumen 1 dari program C bisa anda dapat dengan cara semacam ini :
--------------------- cut here -------------------------
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char **argv){
char *buf;
buf = (char *)malloc(256);
setuid(0);
setgid(0);
sprintf(buf,"./depan.sh %s",argv[1]);
system(buf);
free(buf);
return 0;
}
------------------ cut here -----------------------------
yang dibawah cukup diganti dari :
sprintf(buf,"./depan.sh \"%s\"",argv[1]);
menjadi
sprintf(buf,"./depan.sh \"%s\" \"%s\"",argv[1],argv[2]);
Good Luck
>
> begitu juga dg shell script dibawah ini ;
>
> #!/bin/sh
> /sbin/ipchains -D input -s $1 -j REJECT -p TCP -d 0/0 $2
>
> bila dijalankan dg :
> # depan 192.168.1.1 8080
> maka untuk komputer 192.168.1.1 port 8080-nya akan dilakukan pengaturan
> oleh server
>
> tapi bila dibuat program C spt di atas...justru keluar pesan bahwa aturan
> ipchainsnya ga ada...
> mohon pencerahan...membuat program yg benar...
> terima kasih
--
Utk berhenti langganan, kirim email ke [EMAIL PROTECTED]
Informasi arsip di http://www.linux.or.id/milis.php3