On Tue, 7 Apr 2009 08:00:54 -0400
Manuel Mely <[email protected]> wrote:

> On Mon, 6 Apr 2009 17:55:09 -0400
> Ernesto Acosta Valdés <[email protected]> wrote:
> 
> > X-IPI Cepero Bonilla-MailScanner: Found to be clean
> > X-MailScanner-Envelope-From: [email protected]
> > X-Spam-Status: No
> > 
> > Saludos lista:
> >     Lo que quiero hacer es que tanto postfix como squid utilicen
> >     una base de datos en MySQL en común para autenticar a los
> >     usuarios de naveagación y correo. Se que esto se puede hacer
> >     con Postfix, pero no tengo claro si Squid permite eso.
> >     ¿Alguien sabe si es posible? Si alguien tuviera un buen
> > manual para hacer esto por favor que me lo facilite... 
> > 
> > Gracias.. 
> > 
> 
> Sí, con squid también se puede hacer. En casa creo que tengo un script
> de autenticación hecho en python.

Ah lo tenía aquí, ahora recuerdo que tengo a [1] funcionando en uno de
mis servers.

NOTA: Esta línea puede cambiar de acuerdo a tus necesidades.

c.execute("SELECT \"OK\" FROM usuarios where email=%s and
password=%s and ppp>'1' and srvok='1' and srvsquid='1'", (input_user,
input_pswd,))

1-

#!/usr/bin/env python
#

import sys
import MySQLdb

def valida_usuario(line):

        # Conectarnos a la BD
        SQL_DB = "directorio"
        SQL_TBL = "usuarios"
        SQL_HOST = "localhost"
        SQL_USER = "root"
        SQL_PSWD = "admindb"    
        
        
db=MySQLdb.connect(host=SQL_HOST,user=SQL_USER,passwd=SQL_PSWD,db=SQL_DB)
        c=db.cursor()   
        
        input_user = line[:line.find(' ')]
        input_pswd = line[line.find(' ')+1:]

        c.execute("SELECT \"OK\" FROM usuarios where email=%s and
password=%s and ppp>'1' and srvok='1' and srvsquid='1'", (input_user,
input_pswd,)) validated = c.fetchone() # desconectar de la BD
        if validated is not None:
                return True

while True:
        line = sys.stdin.readline().strip()
        if valida_usuario(line) == True:
                sys.stdout.write("OK\n")
        else:
                sys.stdout.write("ERR\n")

        sys.stdout.flush()

_______________________________________________
Cancelar suscripción
https://listas.softwarelibre.cu/mailman/listinfo/linux-l
Buscar en el archivo
http://listas.softwarelibre.cu/buscar/linux-l

Responder a