1# display args for pam_group.so 2 3# display_args(&service, &module, &args) 4sub display_module_args 5{ 6local $file = "/etc/security/group.conf"; 7local @group; 8open(FILE, "<".$file); 9while(<FILE>) { 10 s/#.*$//; 11 s/\r|\n//g; 12 if (/^\s*([^;]*)\s*;\s*([^;]*)\s*;\s*([^;]*)\s*;\s*([^;]*)\s*;\s*([^;]*)\s*$/) { 13 push(@group, [ $1, $2, $3, $4, $5 ]); 14 } 15 } 16close(FILE); 17local $gt; 18$gt .= &ui_columns_start([ $text{'group_services'}, 19 $text{'group_ttys'}, 20 $text{'group_users'}, 21 $text{'group_times'}, 22 $text{'group_groups'} ]); 23local $i = 0; 24foreach $g (@group, [ ]) { 25 $gt .= &ui_columns_row([ 26 &ui_textbox("services_$i", $g->[0], 20), 27 &ui_textbox("ttys_$i", $g->[1], 20), 28 &ui_textbox("users_$i", $g->[2], 20), 29 &ui_textbox("times_$i", $g->[3], 20), 30 &ui_textbox("groups_$i", $g->[4], 20), 31 ]); 32 $i++; 33 } 34$gt .= &ui_columns_end(); 35$gt .= "<br>".$text{'group_info'}; 36print &ui_table_row(undef, $gt, 4); 37} 38 39# parse_module_args(&service, &module, &args) 40sub parse_module_args 41{ 42local $file = "/etc/security/group.conf"; 43local (@lines, $i); 44for($i=0; defined($in{"services_$i"}); $i++) { 45 next if (!$in{"services_$i"}); 46 push(@lines, join(";", $in{"services_$i"}, $in{"ttys_$i"}, 47 $in{"users_$i"}, $in{"times_$i"}, $in{"groups_$i"}),"\n"); 48 } 49&lock_file($file); 50&open_tempfile(FILE, ">$file"); 51&print_tempfile(FILE, @lines); 52&close_tempfile(FILE); 53&unlock_file($file); 54} 55 56