On Wed, 16 Dec 2009 17:23:06 +1300, Andrew McMillan wrote: > > Sorry for the missing patch & cheers, > No problem.
Thanks for the quick reply!
> I was considering something like this:
>
> diff --git a/inc/drivers_squid_pam.php b/inc/drivers_squid_pam.php
> index a4a0de7..d2cd862 100644
> --- a/inc/drivers_squid_pam.php
> +++ b/inc/drivers_squid_pam.php
> @@ -67,7 +67,8 @@ function SQUID_PAM_check($username, $password ){
> }
> else {
> dbg_error_log( "PAM", "user %s doesn't exist in local DB, we need to
> create it",$usernam
> - $fullname = trim( exec("getent passwd | grep ^" . $username ." | cut
> -d \":\" -f5"), ' ,
> + $fullname = exec('getent passwd "'.$username.'"' );
> + $fullname = preg_replace( '{^[^:]+:[^:]+:\d+:\d+:([^:,]+)(,[^:]*):}',
> '$1', $fullname );
> $usr = (object) array(
> 'user_no' => 0,
> 'username' => $username,
>
>
> Can you test for me if that works for you?
Not really. Besides the minor glitch that two lines are cut off at
the right edge -- if I fix it I end up with:
You are logged on as gregoa (gregor herrmann/home/gregoa:/bin/bash)
Let's try ...
*a bit later*
Something like the following works:
--- inc/drivers_squid_pam.php.orig 2009-12-16 16:44:25.000000000 +0100
+++ inc/drivers_squid_pam.php 2009-12-16 16:59:27.000000000 +0100
@@ -67,7 +67,8 @@
}
else {
dbg_error_log( "PAM", "user %s doesn't exist in local DB, we need to
create it",$username );
- $fullname = trim( exec("getent passwd | grep ^" . $username ." | cut -d
\":\" -f5"), ' ,' );
+ $fullname = exec('getent passwd "'.$username.'"' );
+ $fullname = preg_replace( '{^[^:]+:[^:]+:\d+:\d+:([^:,]+)(,[^:]*):.+$}',
'$1', $fullname );
$usr = (object) array(
'user_no' => 0,
'username' => $username,
Cheers,
gregor
--
.''`. http://info.comodo.priv.at/ -- GPG Key IDs: 0x00F3CFE4, 0x8649AA06
: :' : Debian GNU/Linux user, admin, & developer - http://www.debian.org/
`. `' Member of VIBE!AT, SPI Inc., fellow of FSFE | http://got.to/quote/
`- NP: Sting: We Work The Black Seam
signature.asc
Description: Digital signature

