我们知道,在windows上的网上邻居实现文件共享的文件协议有:1.SMB/CIFS: 服务信息化协议;2.NetBios(network basic input/ouput system):网络基本输入输出系统。它是实现主机名称解析的若要实现linux主机与windows主机之间实现文件共享,那么主机就必须遵循这两个协议,因此,SAMBA诞生了。因此,对于samba,我们可以这样理解:它可以实现类似于windows上的那个网上邻居,来实现不同操作系统不同主机之间的文件共享

   SAMBA:其主配置文件在:/etc/samba/smb.conf(在这个主配置文件中,以#号开头的都是注释,以;号开头的代表是可以启用的选项)

       /etc/samba/lmhosts 实现netbios名称与ip地址对应关系

       /etc/samba/passwd  为samba用户添加密码

      /etc/samba/smbusers  对应windows与linux之间的账号关系(administrator与root)

    下面对samba的主配置文件做下介绍:

       [global]

               workgroup = 工作组

               server string = 说明信息

               security = 定义smb安全级别(share,user,domain/server,ads)

               passdb backend = tdbsam 存放smb用户的密码方式

               load printers = yes

               cups options = raw

         [homes]

               comment =Home Directories

               browseable = no 当某个用户不是该文件的属主时,是否可以看到该目录

               writable = yes 是否可写

         [printers]

               comment = All Printers

               path = /var/spool/samba  打印池

               browseable = no

               quest ok = no  是否公开

               writable = no

               printable = yes  是否可用打印机          

Samba有两个进程来控制smb服务:1.nmbd:就是为了实现netbios名称的管理,它主要监听在udp137 138端口;2.smbd:对文件共享进行管理,其监听在tcp445 139端口。

安装samba软件包:yum install samba

新建个分区/dev/sda6,创建个目录/data,然后将这个新分区挂载到/data/目录下

mount /dev/sda6 /data

然后把这个/data/目录共享出去,可以编辑其配置文件/etc/samba/smb.conf,向其中加入如下内容:

   [MYDATA]

           comment = MYDAtA

           path = /data

           browseable = yes

           writable = yes

           public = yes

保存退出之后重启smb服务  service smb restart

添加2个用户:centos  suse

然后把这2个用户加入到samba里面,并且为其添加samba密码

那么客户端如何访问呢?可以使用一下的命令格式:

   smbclient -L [//主机或ip] [-U 用户账号]

      -L  表示查询该主机所共享的目录资源

      -U  表示通过用户账号来尝试获得该主机的使用资源

客户端要想使用共享的资源,其命令格式为

    smbclient  //主机或ip/share -U username

结合以上命令,我们就可以使用所共享的资源了,但如果要想往共享的目录下上传文件时,只能使用相对路径,不能使用绝对路径

挂载smb的共享文件到本地使用,可以使用命令:

    mount -t cifs //主机名或ip/MYDATA /mnt -o username=centos