文章目录
- 写在开头的话
- Samba 概述
- Samba与FTP的区别
- ftp 的优缺点:
- Samba 的特性:
- smb 协议和 cifs 之间的关系
- Samba 服务详解
- Samba 软件相关信息
- 登录验证模式(安全级别)
- Samba服务搭建
- Windows安装Samba client服务
- Linux安装配置Samba服务
- 报错解决
- Windows建立磁盘映射
- Smaba参数配置
- [global]
- [homes]
- [printers]
- [自定义]
- 配置文件检查工具
- 访问控制
- 服务管理
- 客户端登录方式
- Linux 端:
- Window 端
- Samba实验的部署与配置
- 本地验证(登录、上传、下载)
- 访问控制 - 通过配置限制
- 部分用户登录 samba 服务器
- 部分用户对共享区域有写权限
- 设置上传文件的默认权限
- 用户别名(虚拟用户)
- 映射网络驱动器(挂载)
- 图形化 web 管理界面
- 写在最后的话:
- 请记住:实践是掌握知识的最快方法
- 如果你只是怀着看看的态度去快速浏览文章,而不去认认真真的把文章里面讲的任何一个知识点去实践一遍,那么你永远也掌握不了它
- 生命不息,折腾不止!
- SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同操作系统的计算机之间提供文件及打印机等资源的共享服务。SMB 协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。如图:
Windows上可使用 Serv-U软件使Windows成为FTP服务器端
Samba与FTP的区别
ftp 的优缺点:
- 优点:文件传输、应用层协议、可跨平台(能通过外网进行传输)
- 缺点:只能实现文件传输,无法实现文件系统挂载(就是无法将服务端共享文件的位置映射到本地磁盘);无法直接修改服务器端文件(只能通过修改ftp的配置文件让ftp服务器端可以被修改,然后先将文件下载至本地,在本地修改完文件后,再上传至ftp服务器端,实现服务器端文件的修改)
Samba 的特性:
- 使用 smb/cifs 协议、可跨平台(Windows、Unix、Linux都可以使用)、可实现文件系统挂载、可实现服务器端修改文件(通过将共享文件映射到本地磁盘,可以实现文件在本地的实时修改,而不必先将文件下载,然后修改上传去实现服务器端文件的修改)
smb 协议和 cifs 之间的关系
- 随着 Internet 的流行,Microsoft 希望将这个协议扩展到 Internet 上去,成为 Internet 上计算机之间相互共享 数据的一种标准。因此它将原有的几乎没有多少技术文档的 SMB 协议进行整理,重新命名为CIFS(Common Internet File System),它使程序可以访问远程 Internet 计算机上的文件并要求此计算机提供服务。客户程序请求远在服务器上的 服务器程序为它提供服务。服务器获得请求并返回响应。CIFS 是公共的或开放的 SMB 协议版本,并由 Microsoft 使用。 SMB 协议在局域网上用于服务器文件访问和打印的协议。(cifs使其能够在互联网传输)
Samba 软件相关信息
- 协议:SMB/CIFS
- 服务: smb 实现资源共享、权限验证
其TCP端口号为 139 445 - 配置文件()
主配置文件
别名配置文件
登录验证模式(安全级别)
- share 匿名验证
- user 本地用户验证(Samba服务器默认的安全级别,用户在访问共享资源之前必须提供用户名和密码进行验证)
拓展:tdbsam:该方式是使用一个数据库文件来验证。数据库文件叫。可以通过 向数据库中添加新用户(并且设置samba用户的密码),不过要建立的Samba用户必须先是系统用户。也可以理解为我们使用 将系统用户转化为了samba 用户。pdbedit命令的参数很多,列出几个主要的。
- :新建Samba账户(将系统用户转化为samba用户,并设置密码)
- username:删除Samba账户
- :列出Samba用户列表,读取passdb.tdb数据库文件。
- :暂停该Samba用户账号
- :恢复该Samba用户账号。
- :列出Samba用户列表详细信息
注意:samba用户的密码存储于 passdb.tdb中,而系统用户的密码储存于/etc/shadow中,所以samba的密码并不是系统用户的密码,但是samba服务本地用户验证方式所建立的用户必须是系统中存在的用户,可以理解为samba和系统共用 /etc/passwd这个用户文件
- 别名用户访问(虚拟用户)
- 本次实验采用Linux作为Samba服务的服务器端,Windows作为Samba服务的客户端
Windows安装Samba client服务
- 因为Windows默认是没有安装Samba服务的,所以在做实验之前我们应该先安装上Samba服务的客户端,以下为Windows安装Samba服务的步骤
- 输入快捷键 【Win+R】 召唤出一个窗口,然后在窗口里面输入control
- 点击【程序】
- 点击【启用或者关闭Windows功能】
- 开启【Samba Client功能】
- 重启
现在就完成了Windows添加Samba client服务功能了
Linux安装配置Samba服务
- 利用yum安装Samba服务
- 开启Samba服务
- 【采用本地用户验证方式】:Linux上创建一个用户,使其不能登录Linux系统(此用户为Samba服务验证登录而创建),然后为该用户设置Samba用户密码
注意:因为我们现在是在做实验,不是在生产环境中,所以为了防止不必要的干扰,请关闭防火墙和SELinux
报错解决
- 关于使用Windows访问Smaba时,提示:的问题
- 关闭防火墙,SELinux
- 因为当用户使用用户名和密码访问Samba服务器端后,Windows会保存此账户密码信息,以至于下次再次登陆Samba服务器端时,不需要再次输入账户密码。直接使用之前保存的账户名和密码。而如果你在服务器端里面将原来Windows访问samba服务端时对应的账户名密码删除了,而Windows还是使用之前保存的用户名和密码进行登录,所以会提示没有权限访问(因为samba服务端已经删除了对应的用户名和密码,所以找不到Windows发来的账户密码信息,然后就会拒绝访问)。这时Windows需要清除原来保存的信息。
- 复盘演示过程,首先Windows是可以直接访问Linux的Samba服务的
- 然后我在Linux上删除该系统用户,同时也在samba用户里面删除
- 继续在Windows上访问该smaba服务器,可以看到此时提示没有权限访问
- 在Linux上添加Samba用户
-【 Win+R】输入cmd,然后在Windows上清空保存的samba用户信息,输入即可清空
- 之后【Win+e】,再次在上面的显示框里输入,然后就会要求你输入用户名密码,输入之后可以进入了samba服务器端了
输入用户名密码
登录成功
Windows建立磁盘映射
- Windows右击【此电脑】图标,选择【映射网络驱动器】.
- 填写Smaba服务器端的IP地址加上Samba用户名
- 【Win+E】查看Samba网络磁盘
[global]
[global]用于定义Samba服务器的总体特性,其配置项对所有共享资源生效
- :设定 Samba Server 所要加入的工作组或者域
- :设定 Samba Server 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号。
- :设置Samba Server监听哪些网卡,可以写网卡名,也可以写该网卡的IP地址。
- :表示允许连接到Samba Server的客户端,多个参数以空格隔开。可以用一个IP表示,也可以用一个网段表示。 与 刚好相反(只能二选其一)。
例如: 表示容许来自的主机连接,但排除 ; 表示容许来自子网中的所有主机连接
- :设置Samba Server日志文件的存储位置以及日志文件名称。在文件名后加个宏%m(主机名或者IP地址),表示对每台访问 的机器都单独记录一个日志文件。
- :设置Samba Server日志文件的最大容量,单位为kB,0代表不限制
- :设置安全级别(即用户登录方式)
- 设置用户访问Samba Server的验证方式。(Samba密码验证方式)
passdb 有三个选项,分别为:smbpasswd、tdbsam、ldapsam
- :该方式是使用smb自己的工具smbpasswd来给系统用户(真实用户或者虚拟用户)设置一个Samba密码,客户端就用这个密码来访问Samba的资源。smbpasswd文件默认在/etc/samba目录下,不过有时候要手工建立该文件
- :该方式则是使用一个数据库文件来建立用户数据库。数据库文件叫passdb.tdb
- :该方式则是基于LDAP的账户管理方式来验证用户
- :设置是否在启动Samba时就共享打印机
[homes]
[homes]:用于设置用户宿主目录的共享属性(特殊共享)
- :共享名(特殊共享,泛指每个用户对应的家目录)
- :共享描述
- :共享是否可被查看
- :共享是否可写
家目录是否可写取决于两个条件:第一,系统对于该用户是否设置家目录可写。第二,Samba配置文件是否设置用户对家目录是否可写
- :允许访问该共享的用户
例如:valid users = bob,@bob(多个用户或者组中间用逗号隔开,如果要加入一个组就用“@组名”表示。)
[printers]
用于设置打印机共享资源的属性(特殊共享,共享打印设备,现在基本不用)
- :共享名
- :共享描述
- :共享路径
- :共享是否可被查看
- :是否可以匿名访问,类似于public
- :是否可写
- :是否可以打印
[自定义]
自定义共享区域
- :共享名
- :共享描述
- :共享路径
- :是否可以匿名访问,类似于guest ok
- :共享是否可被查看
- :是否可写(同时设置目录的W)
配置文件检查工具
- :若显示"Loaded services file OK."信息表示配置文件的语法是正确的
- :显示Samba所支持的所有选项
写入权限的控制方式(类似于vsftp的限制方式)
- 配置文件开启,文件系统严格控制(尽量采用这种)
- :配置文件上全面开启写权限
- 或 :在文件系统上严格控制读写权限
- 文件系统开启,配置文件严格控制
- :在文件系统上全面开启写权限
- :Samba配置文件上严格控制权限
- 启动、停止、重新启动和重新加载Samba服务
- : 开启Smaba服务
- :停止Samba服务
- :重启Samba服务
- :重新加载Smaba配置文件
- 开机自动启动samba服务
- :2345级别Samba服务开机自启动
- :Samba服务开机不启动
Linux 端:
- #查看服务器共享
- #登录服务器共享
Window 端
- :登录Samba服务端
- :清空登录缓存
浏览也可以登录Samba服务器端
- :如
- 输入IP地址加登录的位置
- 登录成功
注意:因为SELinux对Samba服务具有约束作用,所以实验前应该先把防火墙和SELinux关闭了
- 服务器端安装 samba
- 确认客户端和相关命令软件包是否安装(默认是安装的)
- 创建共享区域
备份主配置文件
创建独立的共享区间(仿照模板编写)
- 启动 smb 服务并查看默认共享区域
- service smb start
- smbclient -U 用户名 -L smbserver_IP
本地验证(登录、上传、下载)
- 修改配置文件(添加自定义共享)
- 创建共享目录并给定相应权限
- 测试配置文件并重启服务
- 首先,创建 Linux 用户
- 转换为 samba 用户
- 客户端查看共享文件夹并登录测试
注:由于未设置上传文件的默认权限,指定用户上传的文件只有自己能修改和覆盖
访问控制 - 通过配置限制
- : 仅允许部分用户访问共享区域
注:前提条件是指定目录权限给到最大,通过修改配置文件来实现实验结果
部分用户登录 samba 服务器
- 修改中自定义的共享区域
- 添加:设置合法用户列表
- (多个逗号分隔)
部分用户对共享区域有写权限
- 修改 中自定义的共享区域
- 添加:开启只读,设置可写列表
设置上传文件的默认权限
- 文件的默认权限
- 目录的默认权限
- 修改配置文件自定义的共享区域
- 添加:
用户别名(虚拟用户)
- 添加别名(/etc/samba/smbusers)
- 添加:peiqi = pq
- 启用别名(修改主配置文件)
- 添加:
- 测试
映射网络驱动器(挂载)
- Linux 下:
- 临时挂载:
- 永久挂载:
图形化 web 管理界面
- secure CRT里面安装ALT+P进入SFTP,传输安装包
- 在创建目录下创建samba目录,并将复制到该目录下
- 为了解压文件,安装``unzip`安装包
- 查看软件包的类型
el6软件包适用于CentOS6
- 安装升级该目录下所有软件包
- 修改
- 修改
- 添加:
- 重启 服务
- 测试
- 浏览器: 登录时注意端口号
- 打开浏览器:输入
- 这时会提示输入账户名密码,你直接输入root的用户名和密码即可
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/62793.html