Samba 3.0.10 的 MySQL 用户表验证

王朝mysql·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

Samba 让 Linux 的灵活性表露无遗。在公司的局域网内部,我十分喜欢 Samba 的自由自在。

我在公司内部管理着一套自己开发的知识管理系统,这套系统以知识共享为主要内容,在抓取外部资讯的同时,我们鼓励公司的同事共享文档,因此,为了最大限度的方便用户。我考虑采用和普通磁盘系统一样,让用户把文档拖到他的共享目录下。他可以同时拥有自己的私人目录。

而这些都是基于 Samba 来实现的。

安装和编译的步骤并不复杂,但是需要了解为了支持 MySQL 认证,编译时需要的参数,以及配置时采用正确的参数。

编译命令:

  $ ./configure --with-expsam=mysql --with-mysql-prefix=/opt/mysql

如果以上命令成功的话,然后就是 make ; make install 了。

然后拷贝一个 examples 下的 smb.conf 到 /usr/local/samba/lib 。

用 /usr/local/samba/sbin/smbd -D 即可启动。

用 smbstatus 命令可以查看 Samba 服务器的状态。

下面配置 MySQL 的支持。 和 MYSQL 相关的配置有以下几行:

# passdb backend = plugin:/usr/local/samba/lib/pdb/mysql.so:mysql

passdb backend = mysql:mysql

mysql:mysql host = localhost

mysql:mysql port = nnnn

mysql:mysql user = samba

mysql:mysql password = password

mysql:mysql database = smb_user

mysql:mysql table = user

建立 smb_user.user 表的脚本可以从 examples/pdb/mysql 目录下的 mysql.dump 导入,这个目录下的 smb.conf 是一个最简单的配置,可以供参考。但是这个文件有几个地方是错的。

最主要的就是上面注释掉的那行,我发现根据这个 sample 不能使用,后来修改为简单的

mysql:mysql 后就能使用了。

具体的调试还是必须看相关的日志文件,如果是数据库连接错误,相关的日志文件会报告数据库不能连接的错误。

这样,一个基于 MySQL 用户的 Samba 系统建立了起来。

但是,目前没有现成的完全基于 PHP 的针对 Samba 口令的修改程序。因为 user 表中的 lm_pw 和 nt_pw 分别代表口令的散列,其算法相对比较复杂, 远远不是 PHP 和 MySQL 提供的 encrypt() md5() 之类的函数能解决的。

如果有读者已经发现或者已经研发出纯 PHP 的修改 lm_pw 和 nt_[pw 字段的程序,那将是 samba 社区用户的一大福音了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航