⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 make_epass.cgi

📁 Unix下基于Web的管理工具
💻 CGI
字号:
#!/usr/local/bin/perl# make_epass.cgi# Create or update the samba password file from the list of Unix usersrequire './samba-lib.pl';&ReadParse();&header("Convert Users", "");$whatfailed = "Failed to convert user";$| = 1;print "<hr>\n";$config{'smb_passwd'} =~ /^(.*)\/([^\/]+)$/;mkdir($1, 0700);@ulist = &list_users();map { $suser{$_->{'name'}} = $_ } @ulist;print "<h3>Converting Unix users...</h3>\n";foreach $u (split(/[ \t,]/ , $in{"skip_list"})) {	$dont_convert{$u}++;	}print "<table border width=100%><tr><td bgcolor=#c0c0c0><pre>\n";setpwent();while(@uinfo = getpwent()) {	local ($c1, $c2, $m);	$uexists{$uinfo[0]}++;	local $su = $suser{$uinfo[0]};	if ($dont_convert{$uinfo[0]}) {		$m = "$uinfo[0] being skipped";		}	elsif ($su && $in{"update"}) {		if ($su->{'opts'}) {			# new-style user			if ($uinfo[2] == $su->{'uid'}) {				$m = "$uinfo[0] is already the same";				}			else {				$su->{'uid'} = $uinfo[2];				$su->{'real'} = $uinfo[6];				&modify_user($su);				$m = "$uinfo[0] being updated";				$c1 = "<i>"; $c2 = "</i>";				}			}		else {			# old-style user			if ($uinfo[2] == $su->{'uid'} &&			    $uinfo[6] eq $su->{'real'} &&			    $uinfo[7] eq $su->{'home'} &&			    $uinfo[8] eq $su->{'shell'}) {				$m = "$uinfo[0] is already the same";				}			else {				$su->{'uid'} = $uinfo[2];				$su->{'real'} = $uinfo[6];				$su->{'home'} = $uinfo[7];				$su->{'shell'} = $uinfo[8];				&modify_user($su);				$m = "$uinfo[0] being updated";				$c1 = "<i>"; $c2 = "</i>";				}			}		}	elsif ($in{"add"} && !$su) {		local $nu = { 'name' => $uinfo[0],			      'uid' => $uinfo[2] };		local @flags = ("U");		$c1 = "<b>"; $c2 = "</b>";		$m = "$uinfo[0] being added";		if ($in{'newmode'} == 0) {			$nu->{'pass1'} = "NO PASSWORDXXXXXXXXXXXXXXXXXXXXX";			$nu->{'pass2'} = ("X" x 32);			push(@flags, "N");			}		else {			$nu->{'pass1'} = $nu->{'pass2'} = ("X" x 32);			if ($in{'newmode'} == 2) {				$setpass{$uinfo[0]} = $in{'newpass'};				}			else { push(@flags, "D"); }			}		if ($samba_version < 2) {			$nu->{'real'} = $uinfo[6];			$nu->{'home'} = $uinfo[7];			$nu->{'shell'} = $uinfo[8];			}		else {			$nu->{'opts'} = \@flags;			}		&create_user($nu);		}	if ($m) { printf "$c1%-40.40s$c2%s", $m, ++$c%2 ? "" : "\n"; }	}endpwent();# Delete missing users, if neededif ($in{"delete"}) {	foreach $u (@ulist) {		if (!$uexists{$u->{'name'}}) {			# delete this samba user..			$m = "$u->{'name'} being deleted";			&delete_user($u);			printf "<b><font color=#ff0000>%-40.40s</font></b>%s",				$m, ++$c%2 ? "" : "\n";			}		}	}# Update the passwords of new usersforeach $u (keys %setpass) {	&set_password($u, $setpass{$u}) ||		&error("Failed to set password");	}print "</pre></td></tr></table>\n";print "<hr>\n";&footer("", "share list");

⌨️ 快捷键说明

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