|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
[C] Permessi di root su demone
Ciao a tutti!
Sto programmando un mail server sotto Linux. Nel momento in cui vado a fare la bind() sulla porta 110 mi ritorna l'errore Permission Denied. Leggendo su vari thread ho scoperto che per le porte sotto la 1024 bisogna essere root (però su Windows questo non accade, infatti la bind() funziona normalmente anche sulla porta 110). Ora siccome ho creato un demone per eseguire l'intero mail server, vorrei capire se c'è la possibilità di fare il bind di questa porta (ho letto che bisognerebbe mettere il demone sotto /etc/init.d ma non ho capito bene cosa devo fare). Edit: Questo è il codice con il quale configuro i socket: Codice:
void setMTSocket() { #ifdef _WIN32 WSADATA WSStartData; if(WSAStartup(MAKEWORD (2,2), &WSStartData) != 0) PrintError("Can't support WinSock v2.2: "); #endif struct sockaddr_in POP3SAddr; memset(&POP3SAddr,0,sizeof(POP3SAddr)); POP3Socket = socket(PF_INET,SOCK_STREAM,0); if(POP3Socket == INVALID_SOCKET) PrintError("Failed POP3 socket() call: "); POP3SAddr.sin_family = AF_INET; POP3SAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); POP3SAddr.sin_port = htons((uint16_t) cfgParams->POP3Port); if(bind(POP3Socket,(struct sockaddr *)&POP3SAddr,sizeof(struct sockaddr_in)) == SOCKET_ERROR) PrintError("Failed POP3 bind() call: "); if (listen(POP3Socket,cfgParams->numOfThrds) != 0) PrintError("Failed POP3 listen() call: "); struct sockaddr_in SMTPSAddr; memset(&SMTPSAddr,0,sizeof(SMTPSAddr)); SMTPSocket = socket(PF_INET,SOCK_STREAM,0); if(SMTPSocket == INVALID_SOCKET) PrintError("Failed SMTP socket() call: "); SMTPSAddr.sin_family = AF_INET; SMTPSAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); SMTPSAddr.sin_port = htons((uint16_t) cfgParams->SMTPPort); if(bind(SMTPSocket,(struct sockaddr *)&SMTPSAddr,sizeof(struct sockaddr_in)) == SOCKET_ERROR) PrintError("Failed SMTP bind() call: "); if(listen(SMTPSocket,cfgParams->numOfThrds) != 0) PrintError("Failed SMTP listen() call: "); return; }
__________________
Intel Core 2 Duo Q6600 G0, 4GB DDR2-800 A-Data, ABIT AB9, XFX GeForce 8800 GTS 320MB, Sound Blaster X-Fi Extreme Music, Seagate 320GB SATA2, Maxtor 80GB ATA-133, Western Digital 1TB SATA2 Ho concluso affari positivamente con: scandalf, Sinclair63, mstella, checcodag, wilson Ultima modifica di Manugal : 13-03-2010 alle 17:22. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Per fargli avere i diritti del superutente puoi avviarlo dal profilo di root (cosa che generalmente fai solo all'avvio, tramite l'/etc/init.d che ti è stato consigliato, anche se non è una cosa che funziona su tutte le distrubuzioni, quindi te lo sconsiglio), o magari impostare al programma il bit setuid, che probabilmente è meglio per ciò che devi farci.
ciao ![]()
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Puoi tranquillamente avviarlo da una shell di root
![]() Tra l'altro per fare i test, potresti anche fare il bind su una porta diversa dalla 110. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
Grazie. Ho provato a impostare il bit setuid tramite il comando chmod +s , ma mi da sempre Permission denied.
![]()
__________________
Intel Core 2 Duo Q6600 G0, 4GB DDR2-800 A-Data, ABIT AB9, XFX GeForce 8800 GTS 320MB, Sound Blaster X-Fi Extreme Music, Seagate 320GB SATA2, Maxtor 80GB ATA-133, Western Digital 1TB SATA2 Ho concluso affari positivamente con: scandalf, Sinclair63, mstella, checcodag, wilson |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
Si posso avviarlo tramite una shell di root, però non lo so, con tutto il rispetto, mi sembra una soluzione poco elegante
![]()
__________________
Intel Core 2 Duo Q6600 G0, 4GB DDR2-800 A-Data, ABIT AB9, XFX GeForce 8800 GTS 320MB, Sound Blaster X-Fi Extreme Music, Seagate 320GB SATA2, Maxtor 80GB ATA-133, Western Digital 1TB SATA2 Ho concluso affari positivamente con: scandalf, Sinclair63, mstella, checcodag, wilson |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Veramente alla fine è quello che succede quando il demone viene eseguito
![]() |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
Ah ecco
![]() Ok allora mi sa proprio che non ci sbatterò la testa più di tanto e lo avvierò così. Grazie. ![]()
__________________
Intel Core 2 Duo Q6600 G0, 4GB DDR2-800 A-Data, ABIT AB9, XFX GeForce 8800 GTS 320MB, Sound Blaster X-Fi Extreme Music, Seagate 320GB SATA2, Maxtor 80GB ATA-133, Western Digital 1TB SATA2 Ho concluso affari positivamente con: scandalf, Sinclair63, mstella, checcodag, wilson |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:23.