samba最初是澳大利亚的一位大学生所编写的软件,目的是让Windows 与Unix-Like 这两个不同的平台进行文件传输.
在数据传输方面较为著名的软件除了samba,还有ftp和nfs. ftp固然好用,可是它只能先将服务器上的文件下载,修改,再上传,而无法做到直接修改服务器上的数据;nfs是类unix系统下的文件系统,可以做到类unix平台之间,可以做到nfs服务器上文件的在线修改(cifs即是Windows平台下的nfs),可是却无法做到win和类unix两个系统之间的文件传输.而samba的出现,则解决了两大难题
samba服务端:CentOS7.4 ip:192.168.56.132
samba客户端:Win7 ip:192.168.56.133
# yum install samba
# vim /etc/samba/smb.conf
#全局设定
[global]
workgroup = SAMBA //在windows平台下显示的工作组名称
security = user //samba的用户验证方式,user表示账户密码验证
passdb backend = tdbsam //后台存放用户信息的方式,默认为tdbsam
server string = Samba Server Version %v //服务器的说明
netbios name = MYSERVER //指定服务器名称
#家目录的共享设置,不必关心,可以删除并禁止
[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
#自定义共享设置
[sambatest]
comment = just_for_test //注释信息
path = /home/sambauser //可共享目录的路径
public = no //是否公开
writable = yes //是否可写,read only属性正好相反,两者选其一即可
browseable = yes //是否可浏览
valid users = sambauser //有效用户,多个用户可以逗号相隔
# testparm //测试配置文件是否有语法错误
值得注意的是,samba用户必须事先为系统用户,我们可以先创建一个系统用户,再将其设置为samba用户
# useradd sambauser ; passwd sambauser //创建系统用户sambauser并赋予密码
# smbpasswd -a sambauser //将系统用户sambauser设置为samba用户,并赋予其samba密码
# systemctl start smb //开启samba服务
# ss -tln //查看samba的139/tcp和445/tcp端口是否正常开启
# smbclient -U sambauser //127.0.0.1/sambatest //使用用户sambauser的身份,进入共享名称为sambatest的共享目录
注意:开启samba服务所需的端口还需配置firewalld服务,我直接关闭firewalld防火墙服务以便于测试
# systemctl stop firewalld
在文件夹的地址栏中输入\192.168.56.132
输入samba的用户名及密码后,能够进入共享目录即测试成功
可以直接在里面修改,新建或删除文件,samba服务端会显示与客户端一样的结果
至此,samba的简单配置就完成了.值得一提的是,貌似有些ISP禁掉了139和445端口,以至于默认配置的samba只能在局域网中使用.如需在公网中访问,则需要修改samba的端口以及更多的配置-.-