Linux进阶(7)--SAMBA服务

一.什么是SAMBA

1.SMB协议

SMB(Server Message Block)协议实现文件共享,也称为CIFS(Common Internet File System ),是Windows和类Unix系统之间共享文件的一种协议。

SMB协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议。SMB 是在会话层和表示层以及小部分应用层的协议。

windows的网络邻居就是使用smb协议进行文件的共享。

2.SAMBA软件

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。主要用于windows和Linux下的文件共享、打印共享。

客户端主要是Windows;支持多节点同时挂载以及并发写入。

3.SAMBA基本信息

  • 服务启动脚本:smb.serivice
  • 主配置目录:/etc/samba
  • 主配置文件:/etc/samba/smb.conf
  • 安全上下文:samba_share_t
  • 端口:139 445
  • 安装包:samba samba-common

4.SAMBA主要进程

  • smbd进程:控制发布共享目录与权限、负责文件传输 TCP 139 445
  • nmbd进程:用于名称解析netbios UDP 137 138 ; 基于NETBIOS协议获得计算机名称——>解析为相应IP地址,实现信息通讯

NetBIOS是Network Basic Input/Output System的简称,一般指用于局域网通信的一套API。

二.SAMBA的实现

0.环境准备

client(192.168.1.8):安装samba-client (samba客户端主要都是windows)

server(192.168.1.9):安装samba (samba主服务),samba-common(samba配置文件的安装包)

关闭selinux和防火墙

1.SAMBA的安装和启用

# server端:
yum install samba-common samba samba-client -y
systemctl enable --now smb 

# 如果firewalld开启,需要把samba服务添加进去
firewall-cmd --permanent --add-service=samba 
firewall-cmd --reload

# 测试(直接在server端):
smbclient -L //192.168.1.9
# 默认以server端的root用户登陆,需要输入root用户密码

2.SAMBA用户管理

pdbedit -L				#查看所有SAMBA用户
smbpasswd -a student	#添加student用户(必须是存在的本地用户) 
pdbedit -x student		#删除student用户 

# 测试:
smbclient //192.168.1.9/student -U student	#访问student家目录
# 或在windows中输入"\\192.168.1.9\student" 然后输入刚才的用户和密码

问题:smbpasswd和pdbedit的区别

3.SAMBA共享目录

#在server端:
mkdir /sambadir 

vim /etc/samba/smb.conf 
[sambadir] 
	comment = sambadir 
	path = /sambadir 

systemctl restart smb.service

测试:
#在client端 
smbclient -L //192.168.1.9 -U student 
#也可以直接挂载使用
mount //192.168.1.9/sambadir /mnt/ -o username=student,password=123
#自动挂载在client端 
vim /etc/fstab 
//192.168.1.9/sambadir /mnt cifs defaults,username=student,password=123 0 0 mount -a

4.SAMBA访问控制

#在server端 
vim /etc/samba/smb.conf 
[sambadir] 
	comment = sambadir 
	path = /sambadir 
	
	writable = yes				#写权限
	readonly = yes				#只读权限
	write list = student 		#仅student用户可以使用写权限 
	write list = @student 		#仅student用户组成员可以写 
	read list = student
	
	browseable = no 			#隐藏该sambadir共享目录
	
	valid users = student 		#仅student用户可以登陆 
	valid users = @student 		#仅student用户组的成员可登陆 

	hosts allow = 192.168.1.8	#只允许单个IP访问	
	hosts deny = ALL			#拒绝所有
	#注意:deny和allow同时存在,allow优先

chmod 777 /sambadir/ 
systemctl restart smb.service

5.SAMBA文件下的超级用户身份

vim /etc/samba/smb.conf  
[sambadir] 
	admin users = student
	# 加上这个配置参数

systemctl restart smb.service

#测试: 
在client端: 
umount /mnt 
mount -o username=student,password=123 //192.168.1.9/sambadir /mnt 
touch /mnt/studentfile

umount /mnt 
mount -o username=laowang,password=123 //192.168.1.9/sambadir /mnt 
touch /mnt/laowangfile

#在server端: 
ls -l /sambadir/ 
#可以看到studentfile的用户是root

6.匿名用户登陆设置

vim /etc/samba/smb.conf 
[global]
	map to guest = bad user		#必须写在全局设定中 
[sambadir] 
	guest ok = yes				#允许匿名用户访问 

systemctl restart smb.service

#测试: 
在client端:
smbclient //192.168.1.9/sambadir/		#可以匿名登陆

7.SAMBA多用户挂载

问题:在客户端中root用户挂载的共享,切换普通用户仍可以访问并使用

#在client端: 
yum install cifs-utils			#安装多用户挂载工具 

vim /root/smbauth 				#建立认证文件在root家目录下 
username=student 
password=123 

chmod 600 smbauth 
mount -o credentials=/root/smbauth,sec=ntlmssp,multiuser //192.168.1.9/sambadir /mnt/ 		#挂载认证文件 

# 在client端切换到用户laowang,对共享目录进行挂载挂载失败。 
# 接下来要做的就是使laowang用户通过认证: 
cifscreds add -u student 192.168.1.9 
# 使laowang用户以samba服务端用户student身份通过认证,如果报错,尝试cifscreds cleanall后再次认证。

三.autofs + samba

mount是用来挂载文件系统的,可以在系统启动的时候挂载也可以在系统启动后挂载。对于本地固定设备,如硬盘可以使用mount挂载;而光盘、软盘、NFS、SMB等文件系统具有动态性,即需要的时候才有必要挂载。光驱和软盘我们一般知道什么时候需要挂载,但NFS和SMB共享等就不一定知道了,而autofs服务就提供这种功能,好像windows中的光驱自动打开功能,能够及时挂载动态加载的文件系统。

# 在client端
yum install autofs -y

mkdir /mnt/samba			# 建立挂载点

# 可以在/etc/autofs.conf文件中设置更新时间
vim /etc/auto.master 
/mnt/samba /etc/auto.samba 

vim /etc/auto.samba 
samba -fstype=cifs,username=student,password=123 ://192.168.1.9/sambadir

systemctl restart autofs
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值