Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Oct 2001 12:54:07 +1000 (EST)
From:      =?iso-8859-1?q?Keith=20Spencer?= <bsd2000au@yahoo.com.au>
To:        Ugen <ugen@xonix.com>, fbsd <freebsd-questions@freebsd.org>
Cc:        Keith Spencer <bsd2000au@yahoo.com.au>, fbsd <freebsd-questions@FreeBSD.ORG>
Subject:   Re: For script wizards-> Parse a delimited list to add htusers
Message-ID:  <20011018025407.2165.qmail@web12007.mail.yahoo.com>
In-Reply-To: <3BCDBCB4.5A6B3520@xonix.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi Ugen,
How do you mean? What would that do?
Keith

 --- Ugen <ugen@xonix.com> wrote: > There should be
PAM module for smb / NT domain auth.
> --ugen
> 
> Ken McGlothlen wrote:
> 
> > Keith Spencer <bsd2000au@yahoo.com.au> writes:
> >
> > | Hi all,
> > | I have an interesting problem.
> > | I run a school network and have installed squid
> to
> > | proxy for our ADSL fbsd gateway (4.3 releng)
> > | I have figured out how to get a by-user/password
> > | access challenge from squid. I need to be able
> to kick
> > | kids off at times.
> > | I am into VB but know nix of Perl etc.
> > | The ideal thing would be to have a web driven
> user
> > | database on the gateway but It is likely too
> tricky
> > | for me to do. (see scenario at page bottom)
> > | How can I parse a delimited file like...
> > | user1,password1
> > | user2,password2
> > |    ....  etc
> > | using htpasswd to add each entry to my
> /etc/inetusers
> > | file
> >
> > Well, here's a Perl script that would do it.  I'll
> heavily comment it for you:
> >
> >
>
-------------------------------------------------------------------------------
> > #!/usr/bin/perl -w
> > # The above line is necessary.  Lines beginning
> with "#" are comments, but the
> > # first line is special if it starts with "#!";
> the remainder of the line tells
> > # Unix what command interpreter runs this shell. 
> The "-w" turns warnings on.
> >
> > use strict;
> > # This line makes Perl "strict" about various
> things.  It's generally a good
> > # idea, since it helps with debugging and writing
> better code.
> >
> > my( $htpasswd ) = "/usr/local/bin/htpasswd";
> > # Shorthand for where the htpasswd binary is. 
> Best to specify this in absolute
> > # terms, since you don't want any unforeseen
> interactions.
> >
> > my( $passwdfile ) = "/etc/inetusers";
> > # The file you're asking htpasswd to put things
> into.
> >
> > while( <> ) {
> >     # This rather cryptic line means "while I'm
> still reading lines from the
> >     # standard input into the default variable $_,
> do the block...
> >
> >     chomp;
> >     # This "chomps" the default variable $_,
> removing the newline.  This sort
> >     # of thing isn't usually necessary in BASIC,
> but Perl respects the newline
> >     # character, whether you do or not.
> >
> >     my( $username, $password ) = split( /,/ );
> >     # This "splits" the string on every ","
> character.  If the file is
> >     # delimited as you have it above (with no
> space on either side of the
> >     # comma), and no leading and trailing spaces,
> this will split it into two
> >     # components, which are then assigned to
> $username and $password,
> >     # respectively.
> >
> >     `$htpasswd -b $passwdfile $username
> $password`;
> >     # The "backticks" are a common scripting
> method to execute a Unix command.
> >     # It's sort of a sneaky shortcut in this case,
> but it works.
> >
> > }
> > # That's it for the loop, and the script.
> >
>
-------------------------------------------------------------------------------
> >
> > In uncommented form, this is simply:
> >
> >
>
-------------------------------------------------------------------------------
> > #!/usr/bin/perl -w
> >
> > use strict;
> >
> > my( $htpasswd ) = "/usr/local/bin/htpasswd";
> > my( $passwdfile ) = "/etc/inetusers";
> >
> > while( <> ) {
> >     chomp;
> >     my( $username, $password ) = split( /,/ );
> >     `$htpasswd -b $passwdfile $username
> $password`;
> > }
> >
>
-------------------------------------------------------------------------------
> >
> > | It would be even better if I could just somehow
> import the users from the NT
> > | domain. But again...know not how.
> >
> > Unfortunately, neither do I.
> >
> > | Anyway here is a scenario (best case)
> > | Maybe you have suggestions for this or a neat
> solution
> > | #############################
> > | files = bannedlist , schooluserlist, inetusers
> > | student fires up browser
> > | challenged for user password
> > | if valid ok surf
> > | else if on banned list goodbye
> > | else if not in valid nor banned list then
> > |     get them to supply password
> > |     addit to htpassword file
> > |     let them in
> > | ##############################
> > | What do you think?
> >
> > Well, if a simple password file isn't going to cut
> it, you're certainly going
> > to have to resort to CGI scripts at bare minimum. 
> htpasswd is a very simple
> > authentication scheme; if you want to keep track
> of "banned" users, and allow
> > users to add accounts, it's gonna be a bit
> trickier than a simple Perl script.
> >
> > However, there's a lot of help out there.  The
> Apache site is a good place to
> > start.
> >
> >         http://www.apache.org/
> >
> > Best of luck.
> >
> > To Unsubscribe: send mail to majordomo@FreeBSD.org
> > with "unsubscribe freebsd-questions" in the body
> of the message
> 
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-questions" in the body of
> the message 

http://briefcase.yahoo.com.au - Yahoo! Briefcase
- Manage your files online.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011018025407.2165.qmail>