ℹ️大家好,我是练小杰,好久不见了,各位大朋友,小朋友们,最近都在忙些什么呢!有没有吃好喝好啊!!记得要把自己养好啊!!😆
本文是对 Linux 系统管理与服务器配置中的Samba服务器进行学习,后续将添加更多相关知识噢,谢谢各位的支持🙏
前情回顾: 【 LAMP 服务器安装与配置】 Linux专栏:🔝 【Linux零基础开始】【Shell 脚本编程】 【Linux文件系统】
主页:👉【练小杰的CSDN】
Samba服务器
-
- 主页:👉【[练小杰的CSDN](https://blog.csdn.net/weixin_55767624?spm=1011.2415.3001.5343)】
- 简介
-
- 主要功能
- Samba服务器的安装与启动
-
- 背景
- 安装Samba服务器
-
- 1. 修改防火墙设置
- 2. 安装Samba服务
- 3. 启动Samba服务器
- 配置命令总结
- Samba服务器的配置与测试
-
- 配置Samba服务器
-
- 1.配置文件详解
- 2.测试语法
- 3. 建立共享目录
- 4.创建访问账号
- 测试Samba服务器
- 测试命令总结
- 常见问题分析
-
- `NT_STATUS_BAD_NETWORK_NAME`
- `NT_STATUS_LOGON_FAILURE`
- `NT_STATUS_ACCESS_DENIED`
- `NT_STATUS_HOST_UNREACHABLE`
- `Not enough ‘\\’characters in service`
简介
-
Samba是在Linux和UNIX系统上实现信息服务块(Server Messages Block,SMB)协议的一个免费软件,由服务器及客户端程序构成。
-
SMB是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
-
SMB协议是客户机/服务器(C/S) 型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
主要功能
- Samba最大的功能是实现Linux与Windows系统之间直接的文件共享和打印共享。
- 功能总结如下:
文件共享:支持跨平台文件访问 打印机共享:实现网络打印机共享 用户认证:提供完整的用户权限管理 域名服务:可作为 Windows 域控制器 网络浏览:支持网络邻居功能
Samba服务器的安装与启动
背景
- 利用现实背景来配合学习,能够更好的理解Samba服务器的安装和启动。
LXJ公司经过不断发展,当前公司的网络环境建设日趋完善,内部网络不断增多。为了员工之间能够共享不同操作系统之间的资源,将安装局域网Samba服务器,实现Windows和Linux资源的互通。
安装Samba服务器
1. 修改防火墙设置
由于防火墙默认策略会阻止远程用户对Samba的访问,所以需要先修改防火墙配置,以确保共享服务的正常使用,允许Samba流量通过。
firewall-cmd —permanent —add-service=samba //设置防火墙
firewall-cmd —reload //重新加载防火墙
2. 安装Samba服务
可以直接使用yum工具进行安装。具体操作如下: yum install -y samba samba-client 安装完成后,启动并查看Samba服务器。
3. 启动Samba服务器
systemctl start smb.service nmb.service
若服务启动成功,说明服务器安装一切正常。
配置命令总结
一键安装,纵向丝滑👌
firewall-cmd —permanent —add-service=samba
firewall-cmd —reload
yum install samba samba-client
systemctl start smb.service nmb.service
Samba服务器的配置与测试
当我们安装完Samba服务器后,需要进一步配置局域网Samba服务器,将/home/samba设为共享目录,用于共享信息,实现Windows和Linux资源的互通。
配置Samba服务器
1.配置文件详解
-
Samba服务器的默认配置文件是/etc/samba/smb.conf,默认情况下,Samba已经配置为允许用户通过远程共享访问账号的主目录。在此配置文件中,涉及到一些选项设置。
-
为了将目录共享给客户端,需要在配置文件smb.conf的末尾追加对目录的共享设置,实现快速自定义共享。
- 增加内容如下:
[common] //共享名称为common
comment = Common share//共享注释
path = /home/samba//指定共享路径
browseable = yes//所有人可见
guest ok = no//拒绝匿名访问
writable = yes//支持写入数据
2.测试语法
使用命令testparm测试语法的可靠性,当配置文件的语法出错时,命令将会给出提示,需要将错误修改正确后,再次运行testparm查看配置文件是否正确。
3. 建立共享目录
- 在/home目录中新建samba目录作为Samba服务器的共享目录,并在samba目录中新建samba.txt文件作为共享文件,同时将共享文件的权限调整为所有用户可读、可写、可执行,从而确保在不同的操作系统中共享此目录中的文件。
- 与此同时,在确定Samba共享目录之前,需要停用SELinux或设置恰当的布尔值和安全选项,否则SELinux会阻止客户端访问共享目录
setsebool –P samba_export_all_ro=1 samba_export_all_rw=1
//修改SELinux中涉及Samba服务器的布尔值。
getsebool –a | grep samba_export
//查询Samba服务器的布尔值
semanage fcontext –at samba_share_t "/home/samba(/.*)?"
//为/home/samba目录增加samba_share_t标签
restorecon /home/samba
//恢复SELinux文件属性。
4.创建访问账号
-
客户端访问Samba共享时所使用的账号名称就是服务器端操作系统中真实存在的系统账号名称,需要注意的是,访问Samba共享的密码必须是独立的Samba密码,不可以使用系统密码,这样即便有人获得了Samba的账号和密码,也不能登录到服务器本机的操作系统。
-
成功访问Samba服务器还需要使用 smbpasswd命令将系统账号添加到Samba中,并设置对应的密码,CentOS系统自带的Samba软件包安装后,默认会将账号与密码存放在/var/lib/samba/private目录下。
-
如下图所示,新建系统用户smbuser,为该用户设置密码,然后利用smbpasswd命令将该用户添加到Samba服务器的账户中。在添加过程中,会提示设置账号对应的密码。随后,重新启动该服务并查看当前状态
- smbpasswd命令的语法
- 命令格式: powershell smbpasswd [选项] 账户名称
- 选项说明: -a:添加账户并设置密码。 -x:删除SMB账户。 -d: 禁用SMB账户。 -e: 启用SMB账户。
测试Samba服务器
- 假设当前Linux系统的ens33网卡IP地址是:192.168.65.128。 在Windows环境下输入\\\\192.168.65.128进行访问
- 在Linux环境下输入smbclient -U smbuser //192.168.65.128/common访问
- 配置只允许个别用户访问
配置文件smb.conf, 添加如下内容:
[time]
comment = Ashes Of Time
path = /share/time
valid users = lxj
write list = lxj
printable = no
create mask = 0755
directory mask = 0755
- 验证配置:
Windows客户端验证方法:在“这台电脑”点击右键,选择“映射网络驱动器”,选择【使用其他凭据连接】。如下图所示。按照提示输入用户名和密码,输入后,验证共享文件。
Linux端的验证方法如下,在终端中输入 smbclient -L 192.168.10.128 -U lxj命令进行验证。
测试命令总结
vim /etc/samba/smb.conf
[common]
comment = Common share
path = /home/samba
browseable = yes
guest ok = no
writable = yes
testparm
mkdir /home/samba
touch home/samba/samba.txt
setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
getsebool –a | grep samba_export
semanage fcontext –at samba_share_t "/home/samba(/.*)?”
restorecon /home/samba
useradd -s /sbin/nologin smbuser
smbpasswd -a smbuser
systemctl restart smb.service nmb.service
systemctl status smb.service nmb.service
完成以上命令后,可以在Windows和Linux系统上测试Samba服务器的可靠性。
常见问题分析
当Samba服务器配置有误,在Linux端验证时会提示错误信息,以下是常见的错误信息及其解决方案。
NT_STATUS_BAD_NETWORK_NAME
当提示该错误信息,则说明输入了错误的共享名称,一般为输入性错误,需要检查客户端请求的共享资源在服务器中是否存在。
NT_STATUS_LOGON_FAILURE
当提示该错误信息,则说明登陆失败,一般是由于账户名称或密码不对,需要检查账户与密码后重试。
NT_STATUS_ACCESS_DENIED
当提示该错误信息,则说明访问被拒绝,权限不足。可能是Samba服务设置的访问权限,也有可能是服务器文件系统的访问权限不允许客户端访问。
NT_STATUS_HOST_UNREACHABLE
若提示该错误信息,则说明客户端无法连接服务器,一般是由于网络故障或防火墙问题,需要检查客户端与服务器的网络连接是否正常。此外,还需要检查防火墙规则是否允许客户端请求。
Not enough ‘\\’characters in service
若提示该错误信息,则说明客户端访问时共享路径输入有误,需要注意//IP和//IP/是不同的,使用//IP格式访问服务器会报错误。
今天的 Linux 服务器的相关内容到这里就结束了,感谢各位朋友的陪伴👋 ℹ️了解更多,👉主页【练小杰的CSDN】 ⚠️若博客里的内容有问题,欢迎指正,我会及时修改!!! 下次再见,各位伙伴们 🚴🏼♀️~~
评论前必须登录!
注册