配置与使用Samba文件共享服务

版权声明:本文为博主原创文章,可以转载但必须注明出处。 https://blog.csdn.net/nirendao/article/details/80056339

1. Samba简介

Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,做文件共享用。而SMB是Server Message Block的缩写,即服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议移植到了Linux系统上,就形成了现在的Samba软件。微软又把 SMB 改名为 CIFS(Common Internet File System),即公共 Internet 文件系统,并且加入了许多新的功能。

Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于Windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享。由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因而 Samba更常见的是用在了Linux与windows之间的数据共享上面。(注:笔者个人觉得,Samba在权限管理方面比NFS强大很多,因此即使是Linux与Linux之间共享数据,如有权限方面的要求,用Samba也很不错)

SMB是基于客户机/服务器型的协议,因而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端。例如,一台在Linux 下已经架设好的Samba服务器,Windows客户端就可以通过SMB协议共享Samba服务器上的资源文件;同时,Samba服务器也可以访问网络中 其它Windows系统或者Linux系统共享出来的文件。
Samba在Windows下使用的是NetBIOS协议,如果要使用Linux下共享出来的文件,请确认Windows系统下已经安装了NetBIOS协议。

组成Samba运行的有两个服务,一个是SMB,另一个是NMB;SMB是Samba 的核心服务,主要负责建立 Linux Samba 服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问。只有SMB服务启动,才能实现文件的共享。SMB 监听139 TCP端口;而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,监听137和138 UDP端口。

例如,某台Samba服务器的IP地址为192.168.126.15,对应的工作组名称为MYWORKGROUP,那么在Windows的IE浏览器输入下面两条指令都可以访问共享文件。其实这就是Windows下查看Linux Samba服务器共享文件的方法。

\\192.168.126.15\共享目录名称
\\MYWORKGROUP\共享目录名称

Samba服务器可实现如下功能:WINS和DNS服务; 网络浏览服务; Linux和Windows域之间的认证和授权; UNICODE字符集和域名映射;满足CIFS协议的UNIX共享等

2. 配置Samba

环境:

CentOS 7.3

2.1. 关闭SELinux和防火墙

systemctl stop firewalld
systemctl disable firewalld

setenforce 0
vim /etc/selinux/config
    SELINUX=disabled

2.2. 安装与启动Samba

yum install samba
systemctl restart smb nmb 
systemctl enable smb nmb

注:
- 在Ubuntu上叫做smbd和nmbd

2.3. 准备共享目录

mkdir /share
chown -R nobody:nobody /share 

2.4. 修改配置文件

修改 /etc/samba/smb.conf

[global]
    workgroup = LENOVO
    security = user
    map to guest = Bad User
    passdb backend = tdbsam

    printing = cups
    printcap name = cups
    load printers = yes
    cups options = raw

[public]                        # 设置针对的是共享目录个别的设置,只对当前的共享资源起作用
    comment = Public Stuff      # 对共享目录的说明文件,自己可以定义说明信息
    path = /share               # 用来指定共享的目录,必选项
    public = yes

运行以生效:

systemctl restart smb nmb 

检查配置是否成功

testparm

2.5. 安装 Linux client

在另一台Linux机器上:

yum install sambda client 
smbclient //<IP>/public

命令有: help、get、put 等等

2.6. Windows Client

首先,enable “TCP NetBIOS” 服务

可以:nbtstat -n Windows查看netbios信息

直接访问:
\\public

其他:

为何外网连不上呢?因为ISP已经封掉了一些端口,如445.
如果要从外网连上,必须要改变端口:

打开smb.conf,在[global]section中添加:
smb ports = 1314 1315

本文介绍的是最简单的一种Samba的配置,Samba对于权限配置方面还有很多高级的用法,暂不列在本文中了,可参见参考文献和其他文章。

参考文献:

http://www.cnblogs.com/muscleape/p/6385583.html

猜你喜欢

转载自blog.csdn.net/nirendao/article/details/80056339