部署服务
参考上述两篇文章部署成功
优缺点
关于Linux和Windows系统之间的文件传输,很多人选择使用FTP,相对较安全,但是有时还是会出现一些问题,比如上传文件时,文件名莫名出现乱码,文件大小改变等问题。相比较来说,使用Samba作为文件共享,就省事简洁多了。Samba服务器通信协议(Server Messages Block)就是是为了解决局域网内的文件或打印机等资源的共享服务问题,让多个主机之间共享文件变成越来越简单。
ftp 的优缺点:
优点: 文件传输、应用层协议、可跨平台
缺点: 只能实现文件传输,无法实现文件系统挂载;无法直接修改服务器端文件 Samba 的特性:
使用 smb/cifs 协议、可跨平台、可实现文件系统挂载、可实现服务器端修改文件
Samba服务参数
基本参数
协议: SMB/CIFS
软件名: Samba
服务名: smb
端口号: TCP 139 445
配置文件: /etc/samba/
smb.conf 主配置文件
smbusers 别名配置文件
登录验证模式(安全级别)
- share 匿名验证
- user 本地用户验证(Samba服务器默认的安全级别,用户在访问共享资源之前必须提供用户名和密码进行验证)
- 别名用户访问(虚拟用户)
拓展: tdbsam:该方式是使用一个数据库文件来验证。数据库文件叫passdb.tdb。可以通过pdbedit -a 向数据库中添加新用户,不过要建立的Samba用户必须先是系统用户。也可以理解为我们使用pdbedit -a 将系统用户转化为了samba 用户。pdbedit命令的参数很多,列出几个主要的。
pdbedit -a username:新建Samba账户(将系统用户转化为samba用户,并设置密码) pdbedit -x username:删除Samba账户 pdbedit -L:列出Samba用户列表,读取passdb.tdb数据库文件。
部署过程
安装环境
OS:centos7
samba:4.4
安装Samba
rpm -qa|grep samba
yum -y install samba samba-client samba-swat
启动Samba
[root@mail samba]# systemctl enable smb
systemctl enable nmb
systemctl start smb
systemctl start nmb
查看smb,nmb端口信息
[root@mail samba]# netstat -tunlp | grep mb
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 57979/smbd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 57979/smbd
tcp6 0 0 :::139 :::* LISTEN 57979/smbd
tcp6 0 0 :::445 :::* LISTEN 57979/smbd
配置文件
[root@samba-server ~]# cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
[root@samba-server ~]# vim /etc/samba/smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
[global] #全局配置(用于定义Samba服务器的总体特性,其配置项对所有共享资源生效)
workgroup = SAMBA
#设定 Samba Server 所要加入的工作组或者域。
security = user
#设置用户访问Samba Server的验证方式。
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 = root
create mask = 0664
directory mask = 0775
[kevin] //这个是共享文件夹标识,表示登录samba打开时显示的文件夹名称。配置了多少个共享文件夹标识,登录samba时就会显示多少文件夹。
comment = please do not modify it all will //comment是对该共享的描述,可以是任意字符串
path= /home/kevin //共享的路径
writable = yes //是否写入
public = no //是否公开
测试配置文件
- testparm :若显示”Loaded services file OK.”信息表示配置文件的语法是正确的
- -v:显示samba所支持的所有选项 ``` [root@mail samba]# testparm Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section “[homes]” Processing section “[printers]” Processing section “[print$]” Processing section “[tools]” Loaded services file OK. Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions 回车
Global parameters
[global] workgroup = SAMBA printcap name = cups security = USER idmap config * : backend = tdb cups options = raw
...
...
...
<a name="K5lkt"></a>
## 访问共享文件
Windows平台可以直接在资源管理器输入\\x.x.x.x即可访问 其中192.168.137.100为samba服务器的地址, tools为共享名称<br />Linux平台可以使用
[root@mail samba]# smbclient //192.168.137.101/tools Enter root’s password: session setup failed: NT_STATUS_LOGON_FAILURE [root@mail samba]# smbpasswd -a root New SMB password: Retype new SMB password: Added user root. [root@mail samba]# smbclient //192.168.137.101/tools Enter root’s password: Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4] smb: > ls . D 0 Mon Feb 20 23:05:52 2017 .. D 0 Mon Feb 20 23:05:52 2017
38770180 blocks of size 1024. 33408000 blocks available
smb: > ```