diff --git a/group_chooser.cgi b/group_chooser.cgi index 4e6a73466..d393009f4 100755 --- a/group_chooser.cgi +++ b/group_chooser.cgi @@ -33,7 +33,13 @@ if ($in{'multi'}) { for($i=0; $i<$len; $i++) { print "sel[$i] = \"". "e_escape($ul[$i], '"')."\";\n"; - @ginfo = getgrnam($ul[$i]); + + # samba valid system group can start with @ + & + $gn = $ul[$i]; + $gn =~ s/^(@|\+|&)+//g; + @ginfo = getgrnam($gn); + + #@ginfo = getgrnam($ul[$i]); if (@ginfo) { @mems = &unique( split(/ /, $ginfo[3]), @{$members{$ginfo[2]}} ); diff --git a/user_chooser.cgi b/user_chooser.cgi index 74046a669..a4dfe789e 100755 --- a/user_chooser.cgi +++ b/user_chooser.cgi @@ -26,7 +26,13 @@ if ($in{'multi'}) { for($i=0; $i<$len; $i++) { print "sel[$i] = \"". "e_escape($ul[$i], '"')."\";\n"; - @uinfo = getpwnam($ul[$i]); + + # samba valid system user can start with @ + & + $gn = $ul[$i]; + $gn =~ s/^(@|\+|&)+//g; + @uinfo = getpwnam($gn); + + #@uinfo = getpwnam($ul[$i]); if (@uinfo) { print "selr[$i] = \"". "e_escape($uinfo[6])."\";\n";