除非您是需要对webmin进行编程,否则您不需要了解Webmin内部结构和Webmin核心文件说明。此文章是专门给懂ssh和懂perl编程的专业人士的参考资料。普通使用者,不需要了解。
解开 Webmin的安装包,可以发现Webmin 的目录的组成如下:
一组子目录,很显然这些子目录绝大多数都是一个Webmin 管理模块,而且可以看出Webmin完全由 perl实现;
一组perl脚本和几个CGI 脚本,这些脚本可以分为三类:
内置的HTTP服务器:它支持 CGI,Session 和SSL等功能。Miniserv.pl 和miniserv.pem实现了这个 HTTP服务器。它的配置文件通常是/etc/webmin/miniserv.conf, 它主要有如下几个重要参数: 参数及缺省值 说明
port=10000 设置 HTTP服务器监听的端口
root=/usr/libexec/webmin Web 文件的根目录
ssl=0 是否支持 SSL,如果设置为1 ,这个HTTP服务器将提供HTTPS 服务
session=1 是否支持 Session,如果设置为1 ,在访问Web服务之前必须先完成用户登录和认证,用户的登录和认证由 session_login.cgi实现
userfile=/etc/webmin/miniserv.users 存放 HTTP服务器的用户名和密码,changepass.pl 可以修改用户密码
keyfile=/etc/webmin/minserv.pem 存放 HTTP服务器的私钥和公钥证书
Webmin 核心:这部分包括Webmin核心库、 Webmin的首页和模块管理。Web-lib.pl 是Webmin的核心库,包含了 Webmin中主要的公用函数。Web-lib.pl 中会引用了一些CGI提供一些公用功能,这些 CGI包括: chooser.cgi 文件选择 Frame
date_chooser.cgi 日期选择 Frame
config.cgi 配置模块配置文件页面
config_save.cgi 保存配置
help.cgi 帮助页面
fastrpc.cgi 启动一个新进程以加快 rpc的调用
rpc.cgi 用于截获其他 Webmin服务器发来的Webmin 远过程调用
referer_save.cgi Redirect 到以前的URL
user_chooser.cgi 用户选择 Frame
switch_user.cgi 切换用户
switch_skill.cgi 改变当前 Webmin用户的Skill level
acl_security.cgi 配置全局 ACL选项
index.cgi 实现Webmin的首页,它将当前用户可以使用的管理模块按类别分为一个属性页显示。
Install-Module.pl 用于从命令行安装一个Webmin的管理模块。它调用了 copyconfig.pl和perlpath.pl 。
安装脚本:这些脚本用于安装配置Webmin 。Setup.pl是主要的配置脚本,它调用如下脚本:脚本 说明
newmods.pl 用于初始化一个新插入模块的配置文件
oschooser.pl 选择操作系统类型
copyconfig.pl 给管理模块复制配置文件
thirdparty.pl 检查已经安装的模块
perlpath.pl 当 perl的路径不是/usr/local/bin/perl 时,替换perl脚本中的#!/usr/local/bin/perl