部署服务

参考上述两篇文章部署成功

优缺点

关于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

  1. rpm -qa|grep samba
  2. 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: > ```