CIFS 

    Common Internet File System


SMB 

    Servier Message Block 服务信息快


UNC:

    \\IP\SHARENAME


windows之间共享资源:

    1.UNC路径:\\IP\SHARENAME

    2.映射网络驱动器

    3.网上邻居


    以上都得基于NetBIOS,或者是WINNS(类似于dns,使用单播方式获取主机名)。


    4.ftp



linux之间共享资源:

    1.ftp

    2.nfs(基于内核,效率高)



windows和linux之间共享资源:

    1.ftp

    2.samba



NetBIOS

    通过广播的方式,实现获取主机名称的功能。

    端口:

        udp 137 138

        tcp 139


samba:

    提供NetBIOS CIFI/SMB WinBIND服务,可以和windows共享资源。使用WinBIND和LDAP可以提供windows域相关功能。

    受selinux控制。


    端口:

        tcp 445 共享文件

        tcp 139


    账号和密码:

        系统用户 --> samba用户

        samba密码(加密)

        #smbpasswd  [OPTION] USERNAME 更改系统用户为samba用户

            [OPTION]

                -a 添加为samba用户账号

                -d 启用samba账号

                -e 禁用samba账号

                -x 删除samba账号



    安全级别

        share 允许匿名访问

        user  

        server

        domain


    文件权限(交集):

        1.共享权限,即samba配置文件中权限的定义。

        2.文件系统权限,即用户对文件夹的权限。


        浏览权限:

            文件或文件夹除属主属组外是否可以看到。


    安装:

        #yum install samba*


    进程:

        nmbd 

            提供NetBIOS

            udp 137 138 

            tcp139


        smbd

            提供文件共享

            tpc 445


        winbindd

            跟windows域相关


    服务脚本:

        /etc/rc.d/init.d/smb


    配置文件:

        /etc/smb.conf 配置文件

            #为注释,;是可以启用的选项

            [global] 全局选项

                workgroup = WORKGROUP 工作组

                server string = DESCRIPTION %v 显示服务器的相关描述,%v为宏,表示版本号 

                ;netbios name= SERVERNAME netbios的名称。一般使用FQDN的第一段。

                log file = /var/log/samba/log.%m 为每个设备单独创建日志。也可以使用同一个日志

                max log size = 50 日志最大大小,单位为KB。


                security = user 安全级别

                passdb backend = tdbsam 密码库存放格式 


                load printers = yes  是否自动加载打印机

                cups options = raw 指定打印选项 common unix printing system


                ;host allow =  IP | NET 主机白名单

                ;lhost deny = IP| NET 主机黑名单



            [homes] 定义用户是否可以通过samba服务访问自己的家目录

                comment = DESCRIPTION  描述信息

                browseable = no 是否可浏览,no表示除用户自己其他人不可见

                writable = yes 是否有写权限


            [prints] 打印机相关

                comment= All Printers

                path = /var/spool/samba 缓冲池位置

                browseable = no

                guest ok = no 是否允许来宾访问

                writable = no

                printable = yes 是否允许打印


            [SHARENAME] 共享名

                comment = 描述

                path = 文件路径

                borwseable = 是否可浏览

                public = 是否允许匿名或来宾用户访问 等同于 guest ok

                read only = 是否只读

                writable = 是否可写

                write list = USER1,USER2,...,@GROUP1,@GROUP2,... 定义可写用户列表 

                valid users =  白名单

                invalid users =  黑名单


        smbusers 用户映射文件

        lmhosts 主机名称文件


    验证配置文件:

        #testparm 


    客户端:

        #smbclient [OPTION]  //IP/SHARDNAME 类似ftp的CIFS/SMB的客户端工具

            [OPTION]

                -L NetBIOSNAME 列出对应主机上的共享

                -U USERNAME 指定用户名,不指定使用来宾账号。

                -P  交互式输入密码

                -I IP 指定主机的ip地址


        登陆后提示符变成 smb: \>,其中的命令和ftp的命令相似。


基于ip的访问控制:

    1.iptables

    2.smb.conf

        host allow = xxx