SAMBA 服务简介
SMB:Server Message Block 服务器消息块,IBM发布,最早是DOS网络文件共享协议,是私有协议
CIFS:common internet file system,微软基于SMB发布
SAMBA:1991年 Andrew Tridgell 实现 Windows和UNIX相通
官方网站:http://www.samba.org/
SAMBA的功能:
共享文件和打印,实现在线编辑
实现登录SAMBA用户的身份认证
可以进行NetBIOS名称解析
外围设备共享
相关包:
samba 提供smb服务器端
samba-client 客户端软件
samba-common 通用软件
cifs-utils smb客户端工具
samba-winbind 和AD相关
相关服务进程:
smbd 提供smb(cifs)服务 TCP:139,445
nmbd NetBIOS名称解析 UDP:137,138
主配置文件:/etc/samba/smb.conf 帮助参看:man smb.conf
语法检查: testparm [-v] [/etc/samba/smb.conf]
客户端工具:smbclient,mount.cifs
配置特定目录共享-每个共享目录应该有独立的[ ]部分
[共享名称] #远程网络看到的共享名称
comment #注释信息
path #所共享的目录路径
public #能否被guest访问的共享,默认no,和guest=ok 类似
browsable #是否允许所有用户浏览此共享,默认为yes,no为隐藏
writable=yes #可以被所有用户读写,默认为no
read only=no #和writable=yes等价,如与以上设置冲突,放在后面的设置生效,默认只读
write list #用户,@组名,+组名 之间用逗号分隔,如:writable=no,列表中用户或组可读
写,不在列表中用户只读
valid users #特定用户才能访问该共享,如为空,将允许所有用户,用户名之间用空格分隔
准备
10.0.0.7做客户端
10.0.0.8做服务端
1、首先在8上 安装服务器包并启动服务
yum -y install samba
systemctl enable --now smb #端口445和139就是sanba自身用的
而 在7上安装 samba-client
yum -y install samba-client
smbclient -L 10.0.0.8 #执行客户端工具
王老师说:要成为虚拟账户,必须是操作系统账号
pdbedit -L #执行查看没有samba账号,目前为空
2.创建samba账号
useradd smb1
smbpasswd -a smb1 #将已经存在的操作系统账号 变成smb1账号 (密码是123456)
执行同样的命令,创建smb2和smb3
再次查看,有三个账号了
需要了解的是 smb账号存放在
/var/lib/samba/private/passdb.tdb
3.测试 在客户端7上执行;
smbclient -L 10.0.0.8 -U smb1%123456 #看到smb1共享的家目录
smbclient //10.0.0.8/smb1 -U smb1%123456 #在客户端7上开始远程;
上传本地的数据 ,如下图:
而上传的数据在8的smb1目录下查看
以上是默认的samba共享;(我的理解。默认的共享是所有用户登录都可以看到文件)
开始设置指定共享文件夹和 设定一些用户有访问权限;
需要注意的是:指定共享某个目录操作;配置文件在smb.conf里
现在8创建一个要共享的文件夹 并建立一个文件
mkdir /data/smbshare1
touch /data/smbshare1/a.txt
然后在在vim /etc/samba/smb.conf里定义他的共享
设置如下
在7上查看
[root@centos7 ~]#smbclient -L 10.0.0.8 -U smb1%123456
单独访问这个共享文件,操作如下,可以执行下载 但是不能上传,
要上传 需要打开samba和文件的权限
smbclient //10.0.0.8/share1 -U smb15123456
打开samba权限 如图
更改/etc/samba/smb.conf 设置 ,以下两个选项是等价的;
writable=yes #可以被所有用户读写,默认为no
read only=no #和writable=yes等价,如与以上设置冲突,放在后面的设置生效,默认只读
改完后 重启服务 systemctl restart smb 至此下载和上传都可以实现了
(需要注意的是 smb.conf文件有时候改完不需要重启就可以启用,而有时候需要,保险起见,还是每次都重启)
8上面查看已经上传成功;
更换SMB2账号和SMB3登录执行上传,结果也是一样;也就是说,目前没有设定权限,所有用户都有权限上传和下载
4.设置只有特定用户可以上传;
示例 设置smb2和smb3可以上传,smb1不能上传
设置 vim /etc/samba/smb.conf
valid users #特定用户才能访问该共享,如为空,将允许所有用户,用户名之间用空格分隔;
执行结果如下 目前SMB2和SMB3可以上传,SMB1不可以
设置public和browsable
public #能否被guest访问的共享,默认no,和guest=ok 类似;如果设置public=yes则任何用户都可以访问
browsable #是否允许所有用户浏览此共享,默认为yes,no为隐藏
测试;不加账号验证都可以访问;
** 隐藏共享文件
而设置browsable=no 知道文件名才可以使用;**
执行结果如图,看不到文件了;
谢谢观赏