1.了解samba服务
- 概念
实现windows和linux系统之间smb协议的一款开源软件,是c/s架构。 - SMB(服务消息块协议):是一种在局域网上共享文件和打印机的通信协议,提供不同系统之间共享文件或打印机。
- NetBios(网络基本输入输出系统协议):负责数据传输过程中的主机解析。
- CIFS(通用网络文件系统):CIFS是针对Microsoft Windows操作系统的本地网络文件系统。Linux系统可以挂在和访问CIFS文件共享,如同常见的网络文件系统一样。
- samba的作用:共享文件和打印机,支持linux加入到windows的AD中;是想linux和windows之间的访问。
- 实现原理:samba服务功能强大,这与其通信基于SMB协议有关。SMB不仅提供目录和打印机共享,还支持认证、权限设置。在早起,SMB运行于NBT协议(NetBIOS overTCP/IP)上,使用UDP协议的137、138及TCP 的445端口,后期SMB经过开发,可以直接运行于TCP/IP协议上,没有额外的NBT层,使用TCP的协议445端口。
2. smaba软件包的组成
-
samba软件组成:
- samba-common(公共组件)
- samba-client(客户端)
- samba(主程序)
- samba-winbind(允许unix系统利用windowAD的用户信息)
-
samba服务的程序组件
- smb:提供共享访问,管理文件传输,端口tcp139号(smb协议)、tcp445号(cifs协议)
- nmb:负责NetBIOS协议(负责跨平台实现共享)解析,端口UDP137、138
- 理解samba的主配置文件/etc/samba/smb.conf
主配置文件的格式:-
表示注释
- ;表示配置的样例
- [global]全局设置
- [homes]家目录共享设置
- [printers]打印机共享设置
-
3.搭建samba的匿名和认证的共享
- 安装samba:推荐使用yum安装
- 修改配置文件smb.conf主配置文件,根据需求进行修改;smbusers共享账号的别名文件;一个用户可以映射多个名称;
- 管理samba用户:
pdbedit -a -u 用户 #添加系统用户到smb用户
pdbedit -x -u 用户 #删除系统用户在smb用户
pdbedit -L #查看系统用户在smb用户
- 启动服务
systemctl start smb.service #启动共享
systemctl start nmb.service #启动NetBIOS服务
4.samba服务的访问
- smbclient:
yum -y install samba-client #安装软件包
smbclient -L ip地址 -U 用户 #列出共享
smbclient -U 用户 //ip地址/共享名 #访问匿名共享时,不需要指定-U
- mount
yum -y install cifs-utiles #安装cifs工具
mount -o username=用户名 //ip/共享名 /挂载点 #访问认证共享
mount -o username=* //ip/共享名 /挂载点 #访问匿名共享
-
windows客户端共享的原理
net share ##管理本地共享
net use ##管理共享映射
net use 共享路径 /delete ##删除共享缓存
inetcpl.cpl ##打开inet选项,删除访问记录
5.搭建samba文件共享服务
smb共享实现linux和windows间共享
- 安装samba软件
[root@localhost ~]# yum -y install samba
[root@localhost ~]#
[root@localhost ~]# vi /etc/samba/smb.conf ##删除注释:%g /^#/d 删除空行:%g/^$/d 删除样例行:%g /^;/d 删除多余空行;修改如下:
[global]
workgroup = MYGROUP ##指定服务器所在的工作组
server string = Samba Server Version %v ##服务器的描述
log file = /var/log/samba/log.%m ##日志文件
max log size = 50 ##最大日志大小
security = user ##用户认证的共享,将share改为user
passdb backend = tdbsam ##服务用户后台类型
load printers = yes ##是否共享打印机
cups options = raw ##设置共享打印机类型
[public]
comment = Public Stuff ##描述
path = /opt/share ##设置共享的路径
public = no ##共享非公开
writable = no ##默认不可以写
valid users = u01, u02 ##允许访问的用户
write list = u01 ##有写入权限的用户
[root@localhost ~]# testparm ##测试配置是否有误
创建用户
[root@localhost ~]# useradd u01
[root@localhost ~]# useradd u02
[root@localhost ~]# pdbedit -a u01
new password: #设置密码
[root@localhost ~]# pdbedit -a u02
[root@localhost ~]# pdbedit -L #查看smb用户
u01:1000:
u02:1001:
window主机测试
\ \192.168.100.101
登陆用户名密码测试读取写入权限
cmd中net use 查看保存的链接信息
net use * /del 删除保存的连接信息
再次访问\ \192.168.100.150测试另外用户
linux:客户机必须配置ip,能够与samba服务器处于同一网络
[root@localhost ~]#mount -o username=u01 //192.168.100.101/public /mnt
[root@localhost ~]#cd /mnt
[root@localhost ~]#touch b.file
[root@localhost ~]#ls
第二种方式:
[root@localhost ~]#smbclient -U u02 //192.168.100.101/public