smb服务器为centos7
使用的yum安装(如果不会搭建本地yum仓库可以查看)
Linux:rpm查询安装 && yum安装_鲍海超-GNUBHCkalitarro的博客-CSDN博客
samba 简介
samba 使用了
1.SMB 协议
Server Message Block,服务消息块
2.CIFS 协议
Common Internet File System,通用互联网文件系
samba有两项主程序分别是
smbd和nmbd。这两个守护进程在服务器启动到停止期间持续运行,功能各异。Smbd和nmbd使用的全部配置信息全都保存在smb.conf文件中。Smb.conf向smbd和nmbd两个守护进程说明输出什么以便共享,共享输出给谁及如何进行输出。
Samba提供了基于CIFS的四个服务
文件和打印服务、授权与被授权 ———— smbd提供
名称解析、浏览服务 ———— nmbd提供
smbd进程的作用是处理到来的SMB软件包,为使用该软件包的资源与Linux进行协商
nmbd进程使主机(或工作站)能浏览Linux服务器。
我们本章将smbd进程 用于文件传输
安装samba
yum -y install samba
# 安装samba服务
安装完毕
systemctl start smb 启动smb
systemctl start nmb 启动nmb
systemctl enable smb 开机自启smb
systemctl enable nmb 开机自启nmb将start 替换为 stop 就是关闭
将enable 替换为 disable 就是开机自动关闭
成功开启服务
netstat -anput | grep "smbd"
# 可以查看占用的端口
创建共享用户 和 共享文件
首先准备一个要分配的一个文件 也是十分简单 如果你有现成的文件可以不用创建
mkdir -p /kali/tarro
等会将/kali/tarro/下的对象共享出去
现在根据你的需要创建共享用户,我这创建2个
分别是 tarro1 和 tarro2 这两位用户
思路:首先创建系统用户再将其变成入共享用户
useradd tarro1
useradd tarro2
# 创建两个用户
passwd tarro1
passwd tarro2
#修改两个用户的密码
pdbedit -a -u tarro1
pdbedit -a -u tarro2
# 将他俩加入共享用户 期间会让再次设置密码 这个可以和系统密码不一样 这个是等会访问文件的用户密码
pdbedit -L
# 列出所有共享用户
pdbedit -x -u tarro1
# 取消tarro1这个共享用户
# 删除共享用户并没有删除系统用户
再将tarro1添加回来
pdbedit -a -u tarro1
配置samba (核心)/etc/samba/smb.conf
samba的smb主配置文件位置是 /etc/samba/smb.conf
testparm
# 可以直接查看文件内容
vi /etc/samba/smb.conf
# 配置文件
[global]:全局设置
[homes]:用户目录共享设置
[printers]:打印机共享设置
[myshare]:自定义名称的共享目录设置
常见全局配置项的含义
workgroup:所在工作组名称
server string:服务器描述信息
security:安全级别,可用值如下
user、server、domain
log file:日志文件位置,“%m” 变量表示客户机地址
passwd backend:设置共享账户文件的类型
上面这些都可以不用改动
我们让 tarro1 和 tarro2 都可以 读取 但是只有 tarro 2 可以写入
直接在下面追加
然后再追加
comment = 介绍 这里可以随便写
这个是共享的文件夹路径
不允许匿名登录
继续追加
继续追加
这个是允许读取的用户
可以写入的用户
然后保存退出wq
然后访问 //samba主机ip
samba服务器selinux 和 防火墙 都要关闭
systemctl restart smb
重启一下服务
我们将/kali/tarro文件的权限改为777让用户写入 如果没有samba写入权限也会被拦截
可以正常访问
登录tarro2
访问成功
写入成功
返回服务器上看一下
也可以看到
但是他默认写入的权限 文件是 744 目录是 755
如果不想让他默认是这个可以修改
修改写入文件默认权限
vi /etc/samba/smb.conf
再次到这里继续追加
这个是写入的文件默认权限 拥有读写
这个是目录默认权限
为 读写执行
然后保存退出
systemctl restart smb
再次新建两个
和第一次权限不同这次变成我所指定的权限了
Linux访问samba共享文件
客户端Linux需要安装samba-client软件
yum -y install samba-client
安装完成
smbclient -L smb服务器ip -U 用户
smbclient -L 192.168.1.1 -U tarro2
# 查看共享文件内容
输入密码就能查看到
smbclient -U 用户 //smb服务器ip/目录
smbclient -U tarro2 //192.168.1.1/TARRO
输入密码后进入到
smb:\>
就成功进入了
exit可以退出
我们要将里边的文件下载到本地就使用 get
get + 文件名
get 123.txt
exit退出
默认下载到home目录
如果要上传文件就使用 put
put + 本地文件名
put 123123.txt
exit可以退出
平时这样登录很麻烦 , 聪明的攻城狮就会有解决办法 直接将共享文件夹挂载到本地即可
mount -o username=用户名,password=登录用户密码 //IP/目录 /本机挂载点
mount -o username=tarro2,password=123 //192.168.1.1/TARRO /opt# 将共享文件夹挂载到本地的opt下
我们这个tarro有写入权限 进去之后和正常文件一样
如果使用tarro1只有只读时候 往文件内写入东西会有报错