?潭水无风?

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

Samba是LInux和UNIX系统实现SMB协议的一个免费软件,由服务器和客户端程序构成。SMB(Server Messages Block,信息服务块),是一种在局域网共享文件和打印机的一种通信协议,为局域网内不同计算机之间提供文件及打印机等资源的共享服务。

Samba由smbd和nmbd(对客户端提供NetBIOS名服务)两个主要程序组成,两个守护进程在服务启动到停止器件持续运行,功能各异。smbd和nmbd使用的全部配置信息全都保存在smb.conf文件中,配置smb.conf可决定smbd和nmbd两个守护进程的共享信息。

Samba提供基于CIDS的四个服务:文件和打印服务、授权与被授权、名字解析、浏览服务。前两项服务由smbd提供(最重要的功能,Samba大部分核心功能),后两项服务则由nmbd提供。

smbd进程提供了Samba的大部分核心功能。其主要职责:1.提供文件和打印机共享(最重要的Samba职责),2.验证用户,3.提供时间服务。默认情况下,smbd守护程序绑定到TCP端口139和445,SMB协议通过TCP上的NeTBIOS使用端口139,这是许多旧客户端使用SMB/CIFS的方式。端口445在TCP服务上提供简单的SMB,是访问Samba服务器的新客户端数。由于这些职责的关键性质(尤其是,提供文件和打印机共享及验证),smbd可视为Samba的核心。

nmbd进程使主机(工作站)能浏览LInux服务器,此服务主要处理名称相关的任务。其主要职责:1.对名称广播进行响应,2.注册NetBIOS名称(NBNS:又名Windows Internet名称服务,Windows Internet Name Service[WINS]服务器),3.作为NBNS服务器运作,4.作为主浏览器运作。大多数nmbd功能需要将其绑定到TCP端口137,但主浏览器职责涉及用户数据报协议(User Datagram Protocol)端口138。虽然说nmbd不涉及提供文件或打印机,但是许多任务都是任何SMB/CIFS服务器的重要部分,因为nmbd被认为Samba重要部分。它通常通过分布的启动脚本与smbd一起运行。

 

虚拟系统:Ubuntu 16.04 LTS

方法和步骤:

1.安装Samba服务

$ sudo apt-get install samba  # 或su 使用root用户权限 安装:samba&smbfs

 

 

检查Samba版本信息(以下两条命令都可以):

1 $ sudo smbstatus
2 $ sudo smbd --version  # sudo nmbd --version  均可

检查Samba服务是否正在运行:

1 $ systemctl status smbd
2 $ systemctl status nmbd

启动smbd和nmbd两个守护进程:

1 $ sudo systemctl start smbd
2 $ sudo systemctl start nmbd

开始运行后,smbs服务奖在139和445端口上侦听了。

停止smbd和nmbd两个守护进程:

1 $ sudo systemctl stop smbd
2 $ sudo systemctl stop nmbd

 

2.创建共享文件夹(共享文件目录为已存在情况下,请忽略此步骤)

PS:此步骤在<Ubuntu16.04搭建NFS文件共享服务器的方法>有介绍,Samba服务也是共享/sharedfile文件夹

1 $ sudo mkdir /sharedfile # 创建你要共享的目录(共享文件夹,因为我在根目录创建sharedfile目录,所以需要使用root权限)
2 $ sudo chmod 777 /sharedfile # 我将该目录权限全部开放(根据个人需求配置权限)
3 $ ls -l / # 查看sharedfile共享目录和权限

 

3.修改配置文件,添加自己配置的内容

$ sudo vi /etc/samba/smb.conf

在[全局][global]部分,确保工作组的值与Windows计算机的工作组设置相同。

在/etc/samba/smb.conf文件末尾添加以下内容:

1 [Home Share]                        #Windows显示文件夹名
2    comment = Home Public Folder
3    path = /sharedfile               #指定共享目录路径
4    writable = yes 
5    valid users = SambaUser          #指定有效用户可以访问,添加多个用户 valid users = user1,user2,user3
$ testparm  #运行此命令检查Samba配置是否存在语法错误

 

4.创建用户账户

默认情况下,Samba将用户设置为安全模式,客户端访问共享文件夹必须输入用户名和密码。

添加用户:

$ sudo adduser SambaUser          #用户指定有效用户可以访问,若用户已存在登录,会提示该用户已存在

给用户设定访问密码:

$ sudo smbpasswd -a SambaUser   #给该用户设定访问密码,

重启smbd和nmbd守护进程:

1 $ sudo systemctl restart smbd
2 $ sudo systemctl restart nmbd

 

5.设置开机自启动

"/etc/rc.local"和"/etc/init.d/rcS" 等可被linux调用的文件添加以下任一命令

1 systemctl start smbd
2 /etc/init.d/samba start

 

6.从Windows访问Samba共享文件夹

在同一网络的Windows计算机上(处连通状态),打开文件浏览器,在输入"\\192.168.1.118"(你在该网络下的IP地址),就可以看到了,输入配置的用户名和密码就可以访问了。

 

posted on 2018-10-10 15:05  万物拾光  阅读(1086)  评论(0)    收藏  举报