理论部分
概念:
通用互联网文件系统CIFS使用的是公共的或者开放的SMB协议版本。SMB是在会话层和表示层以及小部分应用层上的 协议,使用了NetBIOS的应用程序接口API。该协议在局域网上用于服务器文件访问和打印。它使用客户/服务器模式,客 户程序请求在服务器上的服务器程序为它提供服务,服务器获得请求并返回响应。 CIFS是实现文件共享服务的一种文件系统,主要用于实现Windows系统中的文件共享,Linux系统中用的比较少,一 般Linux系统中利用CIFS文件系统实现文件共享时,需要安装Samba服务。Samba是使Linux支持SMB/CIFS协议的组软件包。 Samba服务在Linux和Windows两个平台之间架起了一座桥梁,这样就可以在Linux系统和Windows系统之间互相通信。 Samba目前已经成为各种Linux发行版本中的一个基本的软件包。
Samba的功能
Samba服务所需软件包包括Samba、Samba-client、Samba-common。Samba软件包包括smbd和nmbd两个守护进程组成。 Samba提供了用于SMB/CIFS 的4项服务:文件和打印服务、授权与被授权、名字解析、浏览服务。前两项服务由smbd守护 进程提供,后两项服务则由nmbd守护进程提供。两个进程的启动脚本是独立的。 smbd进程监听TCP:139 (NetBIOS over TCP/IP)和TCP:445(SMBoverTCP/CIFS)端口。 nmbd进程监听UDP:137 (NetBIOS-ns)和UDP:138(NetBIOSdgm)端口
1. 文件和打印机共享
文件和打印机共享是Samba的主要功能,通过SMB进程实现资源共享,将文件和打印机发布到网络之中,以供用户访问
2. 身份验证和权限设置
smbd服务支持user mode和domain mode等身份验证和权限设置模式,通过加密方式可以保护共享的文件和打印机。
3. 名称解析
Samba通过nmbd服务可以搭建NBNS(NetBIOS Name Service)服务器,提供名称解析,将计算机的 NetBIOS名解析为IP地址。
4. 浏览服务
局域网中Samba服务器可以成为本地主浏览服务器(LMB),保存可用资源列表,当使用客户端访问Windows网 上邻居时,会提供浏览列表,显示共享目录、打印机等资源。
Samba工作原理
Samba服务功能强大,这与其通信基于SMB协议有关。SMB不仅提供目录和打印机共享,还支持认证、权限设置。 SMB经过开发可以直接运用于TCP/IP上,且没有额外的NBT协议,使用TCP的445端口。可以将运行Samba的Linux主机 运行在Windows工作组网络,并提供文件和打印共享服务,也可以将运行Samba的Linux主机加入Windows活动目录 并成为其成员,还可以将运行Samba的Linux主机作为活动目录域控制器(ADS),这需要配合Kerberos服务和LDAP服务。
实践部分
1. 规划节点 Linux操作系统的单节点规划 IP 192.168.200.20 主机名 samba 节点 samba服务节点
2.修改主机名
# hostnamectl set-hostname samba
3.配置网络 具体配置参考
Linux网络配置
4.配置yum源 具体配置参考
配置本地yum源
5.安装samba服务
samba # yum install -y samba
6.配置samba服务
6.1修改配置文件/etc/samba/smb.conf中的[global]部分
samba # vi /etv/samba/smb.conf ...... load printers = no # 将yes修改为no cups options = raw ; printcap name = /dev/null # 将/etc/printcap修改为/etc/null ; printcap name = lpstat ; printing = bsd # 将cpus修改为bsd disable spoolss = yes # 新加这一行 ......
6.2在配置文件末尾新增内容
samba # vi /etc/samba/smb.conf ...... [share] path = /opt/share browseable = yes public = yes writable = yes
参数说明:
/opt/share:要共享的目录,如果没有,则需要创建 browseable:参数是操作的权限 public:参数是访问的权限 writable:参数是对文件操作的权限
6.3创建目录并赋予权限
samba # mkdir /opt/share samba # chmod 777 /opt/share
6.4启动samba服务
samba # systemctl start smb samba # systemctl start nmb
6.5查看端口启动情况
samba # netstat -ntpl
6.6创建samba用户
samba # smbpasswd -a root # 这个用户必须是系统存在的用户,为了方便本案例使用的root用户,密码为000000 samba # service smb restart # 重启samba服务
7.使用samba服务 使用PC机,按“win+R”键,并输入Samba服务的IP地址(192.168.200.10),(在使用PC访问Samba服务前,确保Samba服务器的SELinux服务与防火墙服务均处于关闭状态) 在弹出界面输入用户名和密码,然后单击右下角的“确定”按钮(用户名为root,密码为000000) 这时可以看到一个root目录一个share目录,Samba会默认共享用户目录,share则是通过配置文件共享的目录。使用Samba服务,可以简单地理解为共享文件服务器,将需要被共享的文件,放入share目录即可
在samba中的/opt/share创建一个test.txt文件
samba # touch /opt/share/test.txt
转到PC机,进入share目录,查看被共享的文件
至此Samba服务搭建完毕