下面介绍的为samba服务器的相关设置

1. samba所需软件及其软件结构

1.1 安装相关软件:

yum install samba samba-client samba-common -y
  • samba:这个软件主要提供了smb服务所需的各项服务程序(smbd及nmbd)、相关的文件以及其他与samba相关的logrotate配置文件及开机默认选项文件等。
  • samba-client:这个软件提供了当Linux作为samba client端时,所需要的工具命令,例如挂载samba文件格式的mount.cifs、取得类似网上邻居相关树形图的smbtree等。
  • samba-common:这个软件提供的则是服务器与客户端都会用到的数据,包括samba的主要配置文件(smb.conf)、语法检验命令(testparm)等。

1.2 相关配置文件

  • /etc/samba/smb.conf:这是samba的主要配置文件。主要的设置项目分为服务器的全局设置(global),如工作组、NetBIOS名称与密码等级等,以及共享目录相关设置,如实际目录、共享资源名称与权限等两大部分。
  • /etc/samba/lmhosts:早期的NetBIOS需要额外配置,因此需要这个lmhosts的NetBIOS Name对应的IP文件,lmhosts对应的主机名是NetBIOS Name,而/etc/hosts对应的主机名是HostName,两者不一样。目前samba默认会使用本机名称(HostName)作为NetBIOS Name。
  • /etc/sysconfig/samba:提供启动smbd、nmbd时,还想要加入的相关服务参数
  • /var/lib/samba/private/{passdb.tdb、secrets.tdb}:管理samba的用户帐号/密码时,会用到的数据库文件
  • /usr/share/doc/{samba、samba-client}:这个目录包含了samba的所有相关的技术手册。安装好samba后,该目录下有详细的使用手册。

1.3 相关脚本文件

  • /usr/sbin/{smbd、nmbd}:服务器功能,就是最重要的权限管理(smbd)以及NetBIOS Name查询(nmbd)两个重要的服务器程序。
  • /usr/bin/{tdbdump、tdbtool}:服务器功能,samba使用的数据库名称为TDB(Trivial DataBase),所以需要使用数据库的控制命令来处理,tdbdump可以查看数据库的内容,tdbtools则可以进入数据库操作接口直接手动修改账户及密码参数。(需要先安装tdb-tools软件)
    tdbdump:root#:tdbdump /var/lib/samba/private/passdb.tdb
    tdbtools:root#:tdbtool /var/lib/samba/private/passdb.tdb
    tdb>
  • /usr/bin/smbstatus:服务器功能,可以列出当前samba的连接状况,包括每一条samba连接的PID、共享的资源、使用的用户来源等。
  • /usr/bin/{smbpasswd、pdbedit}:服务器功能,在管理samba的用户帐号密码时,早期是使用smbpasswd这个命令,不过后来使用TDB数据库了,因此建议使用新的pdbedit命令来管理用户数据。
  • /usr/bin/testparm:服务器功能,这个命令主要用来检验配置文件smb.conf的语法正确与否,当你编辑完成smb.conf时,务必使用这个命令来检查一次(终端输入testparm),避免因为打字错误引起困扰。
  • /sbin/mount.cifs:客户端功能,在Windows上面我们可以设置“网络驱动器’来连接到自己的主机上面,在Linux上面,我们则是通过mount (mount.cifs)来将远程主机共享文件与目录挂载到自己的Linux主机上面。
  • /usr/bin/smbclient:客户端功能,当Linux主机想要通过”网上邻居“的功能来查看其他计算机所共享出来的目录与设备时,就可以使用smbclient来查看,这个命令也可以使用在自己的samba主机上面,用来查看是否设置成功。
  • /usr/bin/nmblookup:客户端功能,有点类似nslookup,重点在查出NetBIOS Name
  • /usr/bin/smbtree:客户端功能,查看工作组与计算机名称的树形目录分布图

2. samba配置文件设置

2.1 默认限制

  • 服务器与客户端之间必须要在同一个网络中(否则需要修改Windows默认防火墙)
  • 最好设置为同一工作组
  • 主机的名称不可相同(NetBIOS Name)
  • 专业版Windows XP 最多仅能提供同时10个用户连接到同一台网上邻居服务器上

2.2 共享过程

工作组和主机名的设置,可以右击”我的电脑“图标,在弹出的快捷菜单中,选择”属性“后去修改相关的设置值。

  • 打开”资源管理器“,然后在要共享的目录、磁盘或设备(打印机等)上面右击,在弹出的快捷菜单中,选择”共享“。
  • 最好建立一组给用户使用的帐号和密码,让其他主机的用户可以通过该帐号密码连接进入使用网上邻居共享的资源。

3. samba搭建流程

  • 服务器全局设置方面:在smb.conf中设置好工作组、NetBIOS主机名、密码使用状态(无密码共享或者本机密码)等。
  • 规划准备共享的目录参数:在smb.conf内设置好预计要共享的目录或设备以及可供使用的帐号数据。
  • 建立所需要的文件系统:根据步骤2的设置,在Linux文件系统中建立好共享出去的文件或设备,以及相关的权限参数
  • 建立可用的samba帐号:根据步骤2的设置,建立所需要的Linux实体帐号,再以pdbedit建立使用samba的密码
  • 启动服务:启动samba的smbd、nmbd服务

参考链接:
1.《鸟哥的Linux私房菜-服务器架设篇》