Показать сообщение отдельно
Старый 17.07.2004, 07:55     # 1
Cash
Guest
 
Сообщения: n/a

Question сокеты в linux

Помогите. Я не врубаюсь вроде все делаю правельно, но эта прога не правельно работает/ Я хочу сделать свой сервер в linux что бы удаленно можно было получать полный доступ к моему компу. Но где то что то какой то не дачет. Help me please
Мой Исходник

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdio.h>
#define PORT 7777
int main()
{
int s;
int rc;
char buffer[255];
struct sockaddr_in addr;
bzero(&addr,sizeof(addr));

s=socket(PF_INET,SOCK_STREAM,0);

addr.sin_family=PF_INET;
addr.sin_port=htons(PORT);
addr.sin_addr.s_addr=INADDR_ANY;

if(bind(s,(struct sockaddr*)&addr,sizeof(addr))!=0)
perror("Error Bind\n");
if(listen(s,20)!=0)
perror("Error Listen");
for(;
{
int cl;
struct sockaddr_in client;
int size;
size=sizeof(client);
cl=accept(s,(struct sockaddr*)&client,&size);
bzero(&client,sizeof(client));
if(cl<0)perror("Error Accept");
else
{
if(fork()>0)
{
close(cl);
}
else if(fork()==0)
{
while(1)
{
bzero(buffer,sizeof(buffer));
rc=recv(cl,buffer,255,0);
printf("%s",buffer);
if(rc>0)break;
}

dup2(cl,0);
dup2(cl,1);
dup2(cl,2);

execl("/bin/sh","/bin/sh","-c",buffer,0);
}
else perror("Error fork");


}
}

return 0;
}



После запуска этой программы она слушает пор т 7777, ну впрочем как все стандартные серваки. После того как к ней кто то подключился любым сособом (самый распрастраненый telnet IP 7777). Она должна давать клиенту полный shell доступ с провами root, но когда клиент вводит команду, то вот этот мой долбанный сервер выдает ошибку что такой команды не существует.

Последний раз редактировалось Cash; 22.07.2004 в 02:19.