1987年,微软公司和英特尔公司共同制定了SMB(Server Messages Block,服务器消息块)协议,旨在解决局域网内的文件或打印机等资源的共享问题,这也使得在多个主机之间共享文件变得越来越简单。到了1991年,当时还在读大学的Tridgwell为了解决Linux系统与Windows系统之间的文件共享问题,基于SMB协议开发出了SMBServer服务程序。这是一款开源的文件共享软件,经过简单配置就能够实现Linux系统与Windows系统之间的文件共享工作。当时,Tridgwell想把这款软件的名字SMBServer注册成为商标,但却被商标局以SMB是没有意义的字符而拒绝了申请。后来Tridgwell不断翻看词典,突然看到一个拉丁舞蹈的名字—Samba,而且这个热情洋溢的舞蹈名字中又恰好包含了“SMB”,于是Samba服务程序的名字由此诞生(见图12-1)。Samba服务程序现在已经成为在Linux系统与Windows系统之间共享文件的最佳选择。

Linux-samba服务配置

smb(samba):用于linux和windows之间的文件共享,可以实现匿名用户和本地用户之间的文件共享

工作原理:

  • smb进程 控制发布共享目录与权限    tcp  139  445
  • nmb进程 主要用于名称解析              udp  137  138

软件包及配置文件了解

  • 软件包
    [root@centos7-1 ~]# rpm -aq |grep samba     //6系统上查看
    samba-winbind-clients-3.6.9-164.el6.x86_64        客户端工具
    samba-3.6.9-164.el6.x86_64                        服务端
    samba-client-3.6.9-164.el6.x86_64                 客户端工具
    samba4-libs-4.0.0-58.el6.rc4.x86_64               库文件
    samba-common-3.6.9-164.el6.x86_64                 工具包
    samba-winbind-3.6.9-164.el6.x86_64                客户端工具
    
  • 配置文件
    [root@courtoap ~]# rpm -ql samba |grep etc    // 6系统
    /etc/logrotate.d/samba        日志轮转文件
    /etc/pam.d/samba              验证机制
    /etc/rc.d/init.d/nmb          启动脚本
    /etc/rc.d/init.d/smb
    /etc/samba/smbusers           用户别名文件
    
    [root@centos7-1 ~]# rpm -ql samba |grep etc    // 7系统
    /etc/openldap/schema
    /etc/openldap/schema/samba.schema
    /etc/pam.d/samba
  • 二进制命令
    /usr/sbin/nmbd
    /usr/sbin/smbd
    [root@centos7-1 ~]# rpm -ql samba-common
    /etc/samba                   主目录
    /etc/samba/smb.conf          主配置文件
    /usr/bin/pdbedit             查看smb数据库用户
    /usr/bin/smbpasswd           设置用户密码
    /usr/bin/testparm            检测语法
  • 了解主配置文件
    [root@centos7-1 ~]# cat /etc/samba/smb.conf |grep -v ^#|grep -v '^;'|grep [a-z]
    [global]
        workgroup = SAMBA
        security = user
        passdb backend = tdbsam
        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
    [homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes
    [printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No
    [print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = @printadmin root
        force group = @printadmin
        create mask = 0664
        directory mask = 0775
    cat /etc/samba/smb.conf |grep -v ^#|grep -v '^;'|grep [a-z]

相关文章: