save_auth.cgi

来自「Unix下基于Web的管理工具」· CGI 代码 · 共 48 行

CGI
48
字号
#!/usr/local/bin/perl# save_auth.cgi# Save authentication optionsrequire './squid-lib.pl';&ReadParse();$conf = &get_config();$whatfailed = "Failed to save authentication options";if ($in{'authfile_def'}) {	&save_directive($conf, "proxy_auth", [ ]);	}else {	$in{'authfile'} =~ /^\// || &error("Invalid or missing users filename");	if (!-r $in{'authfile'}) {		open(AUTH, ">$in{'authfile'}");		close(AUTH);		($user, $group) = &get_squid_user($conf);		if ($user) {			@uinfo = getpwnam($user);			@ginfo = getgrnam($group);			chown($uinfo[2], $ginfo[2], $in{'authfile'});			chmod(0644, $in{'authfile'});			}		}	push(@vals, $in{'authfile'});	if (!$in{'authdom_def'}) {		$in{'authdom'}=~/^\S+$/ || &error("Invalid or missing domain");		push(@vals, $in{'authdom'});		}	&save_directive($conf, "proxy_auth",			[ { 'name' => 'proxy_auth',			    'values' => \@vals } ]);	}&flush_file_lines();# check if the proxy_auth directive is supported$out = `$config{'squid_path'} -f $config{'squid_conf'} -k check 2>&1`;if ($out =~ /proxy_auth/) {	# it isn't .. roll back	&save_directive($conf, "proxy_auth", [ ]);	&flush_file_lines();	&error("Your version of Squid has not been compiled with support ",	       "for proxy authentication");	}&redirect("");

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?