Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,SMB服务器消息块最大的功能是可以用于Linux与windows系统直接的文件共享和打印共享,既可以用于Windows与linux之间的文件共享也可以用于linux与linux之间的资源共享
组成Samba运行的有两个服务,一个是SMB,另一个是NMB;SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口;而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,监听137和138 UDP端口
samba的设定流程
1.服务器整体设定方面:在smb.conf当中设定好工作组、NetBIOS主机名、密码使用状态(无密码分享或 本机密码)等等;
2.规划准备分享的目录参数:在smb.conf内设定好预计要分享的目录或装置以及可供使用的账号数据;
3.建立所需要的文件系统:根据步骤2的设定,在linux文件系统当中建立好分享出去的档案或装置,以及相关的权限参数
4.建立可用samba的账号:根据步骤2的设定,建立所需的linux实体账号,再一pdbedit建立使用的samba的密码
5.启动服务:启动samba的smbd,nmbd服务,开始运转。
samba服务器全局配置
workgroup 指定工作组名称
server string 主机注释信息
netbios name 指定NetBIOS名
interfaces 指定服务侦听接口和ip
hosts allow 可用“,”,空格,或tab分隔,默认允许所有主机访问,也可在每个共享独立配置。
hosts deny 拒绝指定主机访问
config file = /etc/samba/conf.d/%U 用户独立的配置文件
Log level = 2 日志级别,默认为0,不记录日志
max log size = 50 日志文件达到50k,将轮循rotate,单位KB
passdb backend = tdbsam 密码数据库格式
samba服务共享目录配置
每个共享目录应该有独立的[ ]部分[共享名称] 远程网络看到的共享名称
comment 注释信息
path 所共享的目录路径
public 能否被guest访问的共享,默认为no,和guest ok类似
browsable 是否允许所有用户浏览此共享,默认为yes,no为隐藏
writeable = yes 可以被所有用户读写,默认为no
read only = no 和 writeable = yes 等价,如与以上设置发生冲突,放在后面的设置生效,默认只读
write list 三种形式:用户,@组名(如writeable=no,列表中用户或组可读写,不在列表中用户只读)
valid users 特定用户才能访问该共享,如为空,将允许所有用户访问,用户名之间用空格分隔
1.修改主机名,安装samba服务
[root@nfs-client ~]# hostnamectl set-hostname samba
[root@nfs-client ~]# bash
[root@samba ~]# yum install -y samba
出现Error downloading packages报错时,可以尝试yum cleam all后重新配置yum源
2.配置samba服务
配置Samba的配置文件/etc/samba/smb.conf
(1)修改[global]中的内容如下(找到配置文件中的字段并修改,disable spoolss = yes是新增的)
load printers = no
cups options = raw
; printcap name = /dev/null
# obtain a list of printers automatically on UNIX System V systems:
; printcap name = lpstat
; printing = bsd
disable spoolss = yes
(2)在配置文件的最后,添加如下内容:
[share]
path = /opt/share #/opt/share:这个目录是将要共享的目录,若没有,需要创建
browseable = yes # browseable:参数是操作权限
public = yes # public:参数是访问权限
writable = yes #writable:参数是对文件的操作权限
创建目录并赋予权限
[root@samba ~]# mkdir /opt/share
[root@samba ~]# chmod 777 /opt/share/
启动samba服务,查看端口启动情况
[root@samba ~]# systemctl start smb
[root@samba ~]# systemctl start nmb
创建Samba用户(密码:123456),重启samba服务
3.使用samba服务
关闭SELinux服务与防火墙
[root@nfs-client ~]# setenforce 0
[root@nfs-client ~]# systemctl stop firewalld
在物理机上按“win+R”键,输入Samba服务的IP地址
输入用户名密码登陆
看到一个root目录一个share目录,Samba会默认共享用户目录,share则是通过配置文件共享的目录
在虚拟机将之前移动到/media中的repo文件,移动到share目录
在物理机上查看share目录