Viewing file: create_pam.cgi (1.78 KB) -rwxr-xr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl # create_pam.cgi # Create a new PAM service
require './pam-lib.pl'; &ReadParse(); &error_setup($text{'create_err'});
# Create the empty file $in{'name'} =~ /^\S+$/ || &error($text{'create_ename'}); $f = "$config{'pam_dir'}/$in{'name'}"; &lock_file($f); &open_tempfile(FILE, ">$f"); &print_tempfile(FILE, "#%PAM-1.0\n"); &print_tempfile(FILE, "# description: $in{'desc'}\n") if ($in{'desc'}); &close_tempfile(FILE); chmod(0644, $f);
# Create extra PAM modules if ($in{'mods'} == 1) { # Setup for unix authentication &create_module($in{'name'}, { 'type' => 'auth', 'control' => 'required', 'module' => 'pam_pwdb.so', 'args' => 'shadow nullok' }); &create_module($in{'name'}, { 'type' => 'account', 'control' => 'required', 'module' => 'pam_pwdb.so' }); &create_module($in{'name'}, { 'type' => 'password', 'control' => 'required', 'module' => 'pam_pwdb.so', 'args' => 'shadow nullok use_authtok' }); &create_module($in{'name'}, { 'type' => 'session', 'control' => 'required', 'module' => 'pam_pwdb.so' }); } elsif ($in{'mods'} == 2) { # Setup to deny access &create_module($in{'name'}, { 'type' => 'auth', 'control' => 'required', 'module' => 'pam_deny.so' }); &create_module($in{'name'}, { 'type' => 'account', 'control' => 'required', 'module' => 'pam_deny.so' }); &create_module($in{'name'}, { 'type' => 'password', 'control' => 'required', 'module' => 'pam_deny.so' }); &create_module($in{'name'}, { 'type' => 'session', 'control' => 'required', 'module' => 'pam_deny.so' }); }
&unlock_file($f); &webmin_log("create", "pam", $in{'name'}, { 'name' => $in{'name'}, 'file' => $f }); &redirect("");
|