Centos7 Samba配置

Samba

概述

Samba是一个能让Linux系统应用Microsoft网络通信协议的软件。而SMB是Server Message Block的缩写,即为服务器消息块。SMB主要作为Microsoft的网络通信协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。后来微软又把SMB改名为CIFS(Common Internet File System),即公共Internet文件系统,并且加入了许多新的功能,这样一来,使得Samba具有了更强大的功能。

Samba最大的功能就是可以用于Linux与Windows系统直接的文件共享和打印共享,Samba既可以用于Windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享。由于NFS(网络文件系统)可以很好地完成Linux与Linux之间的数据共享,因此Samba较多地用在了Linux与Windows之间的数据共享上面。

SMB是基于客户机/服务器型的协议,因而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端。例如,一台在Linux下已经架设好的Samba服务器,Windows客户端就可以通过SMB协议共享Samba服务器上的资源文件,同时,Samba服务器也可以访问网络中其他Windows系统或者Linux系统共享出来的文件。

Samba在Windows下使用的是NetBIOS协议。如果要使用Linux下共享出来的文件,应确认你的Windows系统下是否安装了NetBIOS协议。

Samba服务的组成

组成Samba运行的有两个服务,一个是SMB,另一个是NMB
SMB是Samba的核心启动服务,只有SMB服务启动,才能实现文件的共享;
NMB服务是负责解析用的,类似于DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来。
如果NMB服务没有启动,就只能通过IP来访问共享文件
SMB协议:TCP 139端口 CIFS协议:TCP 445端口

使用场景

Samba最大的功能可用于Linux与windows系统直接的文件共享和打印共享,Samba既可用于windows与Linux之间的文件共享,也可用于Linux与Linux之间的资源共享,由于NFS的出现,因而 Samba更多用在Linux与windows之间的数据共享上面。
所以Samba 一般是实现 文件共享和打印机共享 服务的,而且绝大部分是实现Linux的共享服务

注意

先确认好电脑是否可以访问共享文件夹
1.win+r 输入 gpedit.msc
2.管理模板 -> 网络 -> Lanman工作站 -> 启用不安全的来宾登录
在这里插入图片描述
3.选择启用
在这里插入图片描述

安装

yum install samba -y # 安装 samba服务

# 配置文件 /etc/samba/smb.conf

# 扩展
yum list samba            //列出软件包的信息
yum remove samba          //卸载软件包
yum check-update samba    //检查是否有可更新的软件包
yum update samba          //更新samba软件包

# 启动服务
systemctl start smb
# 开机自启动
systemctl enable smb
systemctl enable nmb
# 防火墙配置
firewall-cmd --permanent --zone=public --add-service=samba  
firewall-cmd --reload 

# 创建目录
cd /home/samba/share   
chmod -R 0755 share/    
chown -R nobody:nobody share/     
# 进一步我们需要配置Selinux  
chcon -t samba_share_t share/

常用配置

security=share //设置用户范文samba服务器的验证方式,一共四种验证方式:
share:用户访问samba server不需要提供用户名和密码,安全性较低;
user:samba server共享目录只能被授权的用户访问,由samba server负责检查账号和密码的正确性,账号与密码要在本samba server中建立;

server:依靠其他windows NT/2000或samba server来验证用户的账号和密码,是一种代理验证方式。该安全模式下,系统管理员可以把所有的windows用户和密码集中到一个NT系统上,使用windows NT进行samba认证,远程服务器可以自动认证全部用户和口令,如果认证失败,samba将使用用户级安全模式作为替代的方式;

domain:域安全级别,,使用主域控制器(PDC)来完成认证。
passdb backend=tdbsam //定义用户后台类型
smbpasswd: 使用SMB服务的smbpasswd命令给系统用户设置SMB密码
tdbsam: 创建数据库文件并使用pdbedit建立SMB独立用户,smbpasswd -a username 建立samba用户并设置密码,不过需要先建立系统用户,也可以使用pdbedit命令来建立samba用户
pdbedit -a username:新建samba账号
pdbedit -x username:删除samba账号
pdbedit -L:列出samba账号列表,读取passdb.tdb数据库文件
pdbedit -c “[D]” -u username:暂停该samba用户的账号
pdbedit -c “[]" -u username:恢复该samba用户的账号
ldapsam:基于LDAP服务进行账户验证
username map=/etc/samba/smbusers //配合/etc/samba/smbusers文件设置虚拟账号

共享方式

共享方式支持三种 匿名用户访问本地用户访问虚拟用户访问

匿名用户访问

修改配置文件 vim /etc/samba/smb.conf

# 在全局配置里修改security的配置 centos6 和 centos7 的配置方式不同
[global]
# centos7 的配置方式
security = user
map to guest = Bad User

# centos6 配置方式:
security=share

# 自定义共享share
[share] # 自定义共享名称
comment=this is share directory! # 共享描述
path=/opt/share # 共享目录路径
public=yes # 设置共享是否允许guest账户访问 同时可以用 "guest ok = yes" 替代

# 设置共享是否可浏览,如果no则表示隐藏,需要通过“//ip/共享目录"进行访问
browseable=yes #yes/no
writable=yes # 设置共享是否具有可写权限
create mask=0644 # 创建的文件权限为644
directory mask=0755 # 创建的文件目录为755

# 保存文件
:wq

创建目录 并配置权限

cd /home/samba/share   
chmod -R 0755 share/    
chown -R nobody:nobody share/     
# 进一步我们需要配置Selinux  
chcon -t samba_share_t share/

重启服务

# 有部分网上资料说需要重启两个服务 smb nmb
# 但经测试好像重启smb就可以了
systemctl restart smb
systemctl restart nmb

本地用户访问

修改配置文件 vim /etc/samba/smb.conf

# 在全局配置里修改security的配置
[global]
security = user

[students] # 自定义共享名称
comment=this is student directory! # 共享描述
path=/opt/students # 共享目录路径

# 设置共享是否可浏览,如果no则表示隐藏,需要通过“//ip/共享目录"进行访问
browseable=yes # yes/no
create mask=0644 # 创建的文件权限为644
directory mask=0755 # 创建的文件目录为755
valid users=zhangsan,lisi # 设置允许访问共享的用户,zhangsan、lisi
write list=zhangsan # 设置该共享具有写入权限的用户,(可以为用户和用户组 @group)

创建目录 并配置权限

mkdir /opt/test
chmod 777 /opt/test

新增用户zhangsan、lisi并设置密码

useradd -s /sbin/nologin zhangsan
passwd zhangsan # 密码设置为121212

useradd -s /sbin/nologin lisi
passwd lisi # 密码设置为121212

将系统用户zhangsan、lisi添加为samba用户并设置samba用户登录密码

smbpasswd -a zhangsan
smbpasswd -a lisi

查看samba用户

pdbedit -L

重启服务

# 有部分网上资料说需要重启两个服务 smb nmb
# 但经测试好像重启smb就可以了
systemctl restart smb
systemctl restart nmb

虚拟用户访问

编辑smbusers配置文件 vim /etc/samba/smbusers

# 新增以下信息
zhangsan =stu01 stu02 stu03

在smb.conf配置文件中添加以下记录 vim /etc/samba/smb.conf

[global]
security=user
username map=/etc/samba/smbusers # 虚拟用户文件的映射

重启服务

# 有部分网上资料说需要重启两个服务 smb nmb
# 但经测试好像重启smb就可以了
systemctl restart smb
systemctl restart nmb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值