我们知道,在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