一、Samba简介
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置"NetBIOS over TCP/IP"使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享。
Samba由两个主要程序组成,它们是smbd和nmbd。这两个守护进程在服务器启动到停止期间持续运行,功能各异。Smbd和nmbd使用的全部配置信息全都保存在smb.conf文件中。Smb.conf向smbd和nmbd两个守护进程说明输出什么以便共享,共享输出给谁及如何进行输出。
Samba提供了基于CIFS的四个服务:文件和打印服务、授权与被授权、名称解析、浏览服务。前两项服务由smbd提供,后两项服务则由nmbd提供。 简单地说,smbd进程的作用是处理到来的SMB软件包,为使用该软件包的资源与Linux进行协商,nmbd进程使主机(或工作站)能浏览Linux服务器。
二、Samba安装与配置
1、安装Samba
[root@localhost ~]# yum -y install samba
2、配置Samba
[root@localhost ~]# vim /etc/samba/smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
[global]
# 设置工作组名称
workgroup = SAMBA
# 设置服务器描述信息
server string = Samba Server
# 设置安全模式为用户级别认证
security = user
# 启用密码加密传输
encrypt passwords = yes
# 设置日志文件路径和名称
log file = /var/log/samba/%U_%I.log
# 开启匿名访问
map to guest = Bad User
passdb backend = tdbsam
[printers]
# 打印机共享的注释
comment = All Printers
# 打印机共享的路径
path = /var/spool/samba
# 允许打印任务
printable = yes
3、启动Samba
[root@localhost ~]# systemctl start nmb smb
4、配置开机自启Samba
[root@localhost ~]# systemctl enable nmb smb
5、查看Samba服务进程
[root@localhost ~]# ps -ef |grep -P "nmbd|smbd"
6、查看Samba服务端口
Tips:smbd应用进程主要监听139和445端口, nmbd应用进程主要监听137与138端口。
[root@localhost ~]# netstat -lntup |grep -P "nmbd|smbd"
三、Samba用户管理
规划:
创建两个测试用户,分别为admin和test,共享主目录为/data/samba,共享盘目录为/data/samba/public,其中公共盘匿名用户可读写(只能管理自己创建的文件和目录,不可删除其他用户文件和目录),用户所属目录只能自己访问。
1、创建admin和test用户
[root@localhost ~]# useradd -s /sbin/nologin admin
[root@localhost ~]# useradd -s /sbin/nologin test
2、创建共享目录及授权
[root@localhost ~]# mkdir -p /data/samba
[root@localhost ~]# mkdir -p /data/samba/{public,admin,test}
[root@localhost ~]# chown -R admin.admin /data/samba/admin/
[root@localhost ~]# chown -R test.test /data/samba/test
[root@localhost ~]# chmod 1757 /data/samba/public
3、配置Samba
[root@localhost ~]# vim /etc/samba/smb.conf
[公共盘]
# 设置注释
comment = All Printers
# 设置公共资源的路径
path = /data/samba/public
# 设置公共资源是否对所有用户开放
public = yes
# 设置公共资源可写入
writable = yes
[管理员]
# 设置注释
comment = admin
# 设置共享资源的路径
path = /data/samba/admin
# 设置共享资源可写入
writable = yes
# 指定可以访问共享资源的用户或用户组
valid users = admin
# 设置新创建的文件权限掩码
create mask = 0644
# 设置新创建的目录权限掩码
directory mask = 0755
[测试]
# 设置注释
comment = test
# 设置共享资源的路径
path = /data/samba/test
# 设置共享资源可写入
writable = yes
# 指定可以访问共享资源的用户或用户组
valid users = test
# 设置新创建的文件权限掩码
create mask = 0644
# 设置新创建的目录权限掩码
directory mask = 0755
4、重启Samba服务
[root@localhost ~]# systemctl restart nmb smb
5、创建Samba用户
[root@localhost ~]# smbpasswd -a admin
New SMB password:
Retype new SMB password:
Added user admin.
[root@localhost ~]# smbpasswd -a test
New SMB password:
Retype new SMB password:
Added user test.
6、配置防火墙规则
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=samba
success
[root@localhost ~]# firewall-cmd --reload
success
7、权限验证
客户端:Windows 10
操作步骤:同时按住键盘上的Windows+R,调出运行窗口。在运行窗口输入\\192.168.2.195,如下图所示:
1)访问管理员
2)新建文件和目录
3)访问测试目录
4)新建文件和目录
5)访问公共盘创建文件和目录
6)验证公共盘是否可以删除其他人创建的文件
# Samba服务器创建测试文件和目录
[root@localhost ~]# mkdir -p /data/samba/public/test
[root@localhost ~]# touch /data/samba/public/test.txt
7)Windows测试是否能删除文件和目录
验证结果:符合前面规划设定。
若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如本文“对您有用”,欢迎随意打赏,谢谢!
评论