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

📄 index.cgi

📁 Unix下基于Web的管理工具
💻 CGI
字号:
#!/usr/local/bin/perlrequire './user-lib.pl';&header($text{'index_title'}, "", "intro", 1, 1);$formno = 0;%access = &get_module_acl();# List all local users@ulist = @allulist = &list_users();if ($access{'uedit_mode'} == 1) {	@ulist = ();	}elsif ($access{'uedit_mode'} == 2) {	map { $canu{$_}++ } split(/\s+/, $access{'uedit'});	@ulist = grep { $canu{$_->{'user'}} } @ulist;	}elsif ($access{'uedit_mode'} == 3) {	map { $cannotu{$_}++ } split(/\s+/, $access{'uedit'});	@ulist = grep { !$cannotu{$_->{'user'}} } @ulist;	}elsif ($access{'uedit_mode'} == 4) {	@ulist = grep {		(!$access{'uedit'} || $_->{'uid'} >= $access{'uedit'}) &&		(!$access{'uedit2'} || $_->{'uid'} <= $access{'uedit2'})			} @ulist;	}elsif ($access{'uedit_mode'} == 5) {	@ulist = grep { $_->{'gid'} == $access{'uedit'} } @ulist;	}if (@ulist > $config{'display_max'}) {	# Display user search form	print "<hr>\n";	print "<b>$text{'index_toomany'}</b><br>\n";	print "<form action=search_user.cgi>\n";	print &hlink("<b>$text{'index_find'}</b>","findform"),	      " <select name=field>\n";	print "<option value=user checked>$text{'user'}\n";	print "<option value=real>$text{'real'}\n";	print "<option value=shell>$text{'shell'}\n";	print "<option value=home>$text{'home'}\n";	print "<option value=uid>$text{'uid'}\n";	print "</select> <select name=match>\n";	print "<option value=0 checked>$text{'index_equals'}\n";	print "<option value=1>$text{'index_matches'}\n";	print "<option value=2>$text{'index_nequals'}\n";	print "<option value=3>$text{'index_nmatches'}\n";	print "</select> <input name=what size=15>&nbsp;&nbsp;\n";	print "<input type=submit value=$text{'find'}></form>\n";	$formno++;	}elsif (@ulist) {	# Display a table of all users	print "<hr>\n";	if ($config{'sort_mode'}) {		@ulist = sort { $a->{'user'} cmp $b->{'user'} } @ulist;		}	if ($config{'display_mode'}) {		# Show names, real names, home dirs and shells		print "<h3>$text{'index_users'}</h3>\n";		print "<table width=100% border>\n";		print "<tr $tb> <td><b>$text{'user'}</b></td> ",		      "<td><b>$text{'uid'}</b></td> ",		      "<td><b>$text{'real'}</b></td> ",		      "<td><b>$text{'home'}</b></td> ",		      "<td><b>$text{'shell'}</b></td> </tr>\n";		foreach $u (@ulist) {			print "<tr $cb> <td><a href='edit_user.cgi?",			      "num=$u->{'num'}'>$u->{'user'}</a></td> ",			      "<td>$u->{'uid'}</td> ",			      "<td>",&ifblank($u->{'real'}),"</td> ",			      "<td>",&ifblank($u->{'home'}),"</td> ",			      "<td>",&ifblank($u->{'shell'}),"</td> </tr>\n";			}		print "</table>\n";		}	else {		# Just show names		print "<table width=100% border>\n";		print "<tr $tb> <td><b>$text{'index_users'}</b></td> </tr>\n";		print "<tr $cb> <td><table width=100%>\n";		for($i=0; $i<@ulist; $i++) {			if ($i%4 == 0) { print "<tr>\n"; }			print "<td><a href=\"edit_user.cgi?",			      "num=$ulist[$i]->{'num'}\">",			      "$ulist[$i]->{'user'}</a></td>\n";			if ($i%4 == 3) { print "</tr>\n"; }			}		print "</table></td> </tr></table>\n";		}	}elsif ($access{'ucreate'}) {	print "<hr>\n";	print "<b>$text{'index_notusers'}</b>. <p>\n";	}if ($access{'ucreate'}) {	local $cancreate;	if ($access{'hiuid'} && !$access{'umultiple'}) {		foreach $u (@allulist) {			$useduid{$u->{'uid'}}++;			}		for($i=int($access{'lowuid'}); $i<=$access{'hiuid'}; $i++) {			if (!$useduid{$i}) {				$cancreate = 1;				last;				}			}		}	else { $cancreate = 1; }	if ($cancreate) {		print "<a href=\"edit_user.cgi\">$text{'index_createuser'}</a> <p>\n";		}	else {		print "$text{'index_nomoreusers'}<p>\n";		}	}# List all local groups@glist = @allglist = &list_groups();if ($access{'gedit_mode'} == 1) {	@glist = ();	}elsif ($access{'gedit_mode'} == 2) {	map { $cang{$_}++ } split(/\s+/, $access{'gedit'});	@glist = grep { $cang{$_->{'group'}} } @glist;	}elsif ($access{'gedit_mode'} == 3) {	map { $cannotg{$_}++ } split(/\s+/, $access{'gedit'});	@glist = grep { !$cannotg{$_->{'group'}} } @glist;	}elsif ($access{'gedit_mode'} == 4) {	@glist = grep {		(!$access{'gedit'} || $_->{'gid'} >= $access{'gedit'}) &&		(!$access{'gedit2'} || $_->{'gid'} <= $access{'gedit2'})			} @glist;	}if (@glist) {	print "<hr>\n";	if ($config{'sort_mode'}) {		@glist = sort { $a->{'group'} cmp $b->{'group'} } @glist;		}	if ($config{'display_mode'}) {		# Display group name, ID and members		print "<h3>$text{'index_groups'}</h3>\n";		print "<table border width=100%>\n";		print "<tr $tb> <td><b>$text{'gedit_group'}</b></td> ",		      "<td><b>$text{'gedit_gid'}</b></td> ",		      "<td><b>$text{'gedit_members'}</b></td> </tr>\n";		foreach $g (@glist) {			print "<tr $cb> <td><a href='edit_group.cgi?",			      "num=$g->{'num'}'>$g->{'group'}</a></td> ",			      "<td>$g->{'gid'}</td> ",			      "<td>",&ifblank($g->{'members'}),"</td> </tr>\n";			}		print "</table>\n";		}	else {		# Just display group names		print "<table width=100% border>\n";		print "<tr $tb> <td><b>$text{'index_groups'}</b></td> </tr>\n";		print "<tr $cb> <td><table width=100%>\n";		for($i=0; $i<@glist; $i++) {			if ($i%4 == 0) { print "<tr>\n"; }			print "<td><a href=\"edit_group.cgi?",			      "num=$glist[$i]->{'num'}\">",			      "$glist[$i]->{'group'}</a></td>\n";			if ($i%4 == 3) { print "</tr>\n"; }			}		print "</table></td> </tr></table>\n";		}	}elsif ($access{'gcreate'} == 1) {	print "<hr>\n";	print "<b>$text{'index_notgroups'}</b>. <p>\n";	}if ($access{'gcreate'} == 1) {	local $cancreate;	if ($access{'higid'} && !$access{'gmultiple'}) {		foreach $g (@allglist) {			$usedgid{$g->{'gid'}}++;			}		for($i=int($access{'lowgid'}); $i<=$access{'higid'}; $i++) {			if (!$usedgid{$i}) {				$cancreate = 1;				last;				}			}		}	else { $cancreate = 1; }	if ($cancreate) {		print "<a href=\"edit_group.cgi\">$text{'index_creategroup'}</a> <p>\n";		}	else {		print "$text{'index_nomoregroups'}<p>\n";		}	}if ($access{'logins'}) {	print "<hr>\n";	print "<form action=list_logins.cgi>\n";	print "<input type=submit value=\"$text{'index_logins'}\">\n";	print "<input name=username size=8> ",		&user_chooser_button("username",0,$formno),"</form>\n";	}print "<hr>\n";&footer("/", $text{'index'}); sub ifblank{return $_[0] ? $_[0] : "&nbsp;";}

⌨️ 快捷键说明

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