网络服务-SAMBA
1. Samba 概述
SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内不同操作系统的计算机之间提供文件及打印机等资源的共享服务。SMB 协议是客户机/服务器 型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。

为什么要用SAMBA?
ftp的优缺点:
优点:文件传输、应用层协议、可跨平台
缺点:只能实现文件传输,无法实现文件系统挂载;无法直接修改服务器端文件
Samba的特性:
使用smb/cifs 协议、可跨平台、可实现文件系统挂载、可实现服务器端修改文件
smb协议和cifs 直接的关系
随着Internet 的流行,Microsoft 希望将这个协议扩展到 Internet 上去,成为 Internet 上计算机之间相互共享数据的一种标准。因此他将原来的几乎没有多少技术文档的SMB 协议进行整理,重新命名为CIFS (Common Internet File System),它使程序可以访问远程Internet 计算机上的文件并要求此计算机提供服务。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS 是公共的或开发的SMB 协议版本,并由Microsoft 使用。SMB 协议在局域网上用于服务器文件访问和打印的协议。
2. Samba服务详解
2.1 Samba软件相关信息
1)协议:SMB/CIFS
2)服务:
smb 实现资源共享、权限认证 TCP 139 445
3)配置文件(/etc/samba/)
smb.conf 主配置文件
smbusers 别名配置文件
2.2 登录验证模式(安全级别)
1)share 匿名验证
2)user 本地用户验证(Samba服务器默认的安全级别,用户在访问共享资源之前必须提供用户和密码进行验证)
扩展:tdbsam:该方式是使用一个数据库文件来验证。数据库文件叫passdb.tdb。可以通过 pdbedit -a 向数据库中添加新用户,不过要建立的用户必须先是系统用户。也可以理解为我们是以 pdbedit -a 将系统用户转化为 samba 用户。pdbedit 命令参数很多,下述为常用:
pdbesit -a username:新建Samba用户(将系统用户转化为samba用户,并设置密码)
pdbedit -x username:删除samba用户
pdbedit -L:列出samba用户列表,读取pdbedit.tdb 数据库文件。
3)别名用户访问(虚拟用户)
2.3 常见配置参数解释
[global] 用于定义samba服务的总体特性,其配置项对所有共享资源生效
workgroup = WORKGROUP
#设定samba server 所要加入的工作组或域
server string = Samba Server Version %v
#设定Samba Server 的注释,可以是任意字符串,也可以不填。宏%v表示显示samba的版本号
interfaces = lo eth0 192.168.80.129/
#设置samba server 监听哪些网卡,可以写网卡名,也可以写该网卡的IP地址。
hosts allow = . 192.168.. 192.168.80.130
#表示允许连接到samba server 的客户端,多个参数以空格隔开。可以用一个IP 表示,也可以用一个网段表示。
hosts allow 和 hosts deny 刚好相反(2选1)
例:
hosts allow=192.168.80. EXCEPT192.168.80.130
表示允许来自192.168.80.* 的主机连接,但排除192.168.80.130
hosts allow=192.168.80.0/24
表示允许来自192.168.80.0/24子网中的所有主机连接
log file = /var/log/samba/log.%m
#设置Samba Server日志文件的存储位置以及日志文件名称。在文件名后加个宏%m(主机名),
#表示对每台访问Samba Server的机器都单独记录一个日志文件。
max log size =
#设置Samba Server日志文件的最大容量,单位为kB,0代表不限制
security = user
#设置用户访问Samba Server的验证方式。
passdb backend = tdbsam
load printers = yes/no
#设置是否在启动samba时就共享打印机
[homes] 用于设置用户宿主目录的共享属性(特殊共享)
[homes] #共享名
comment = Home Directories #共享描述
browseable = no #共享是否可被查看
writable = yes #共享是否可写
valid users =%S #允许访问该共享的用户
例:valid users = sss,@sss(多个用户或组中间用逗号隔开,如果要加入一个组要用"@组名")
[printers] 用于设置打印机共享资源的属性(特殊共享,共享打印设备,现在基本不用)
[printers] #共享名
comment = All Printers #共享描述
path = /var/spool/samba #共享路径
browsable = no #共享是否可被查看
guest ok = no #是否可以匿名访问,类似于public
writable = no #是否可写
printable = yes #是否可以打印
[自定义] 自定义共享域
[自定义] #共享名
comment = the share is xbz #共享描述
path = /share/zdy #共享路径
public = yes #是否可以匿名访问,类似于 guest ok
browseable = yes #共享是否可被查看
writable = yes #是否可写(同时设置目录的W)
配置文件检查工具
testparm:若显示"Loaded services file OK."信息表示配置文件的语法是正确的
-v:显示samba所支持的所有选项
2.4 访问控制
写入权限的控制方式(类似vsftp的限制方式):
配置文件开启,文件系统严格控制(尽量使用)
writable = yes
setfacl 或 chmod 777
文件系统开启,配置文件严格控制
chmod 777 /dir
read only = yes
write list = 用户,@组
2.5 服务启动管理
启动、停止、重启和重新加载samba服务
systemctl start|stop|restart|reload smb
开机自启samba服务
systemctl enable smb
chkconfig --level smb on|off
2.6 客户端登录方式
Linux端:
smbclient -U 用户名 -L //服务器IP #查看服务器共享
smbclient -U 用户名 //服务器IP/共享名 #登录服务器共享
windows端
\\服务器IP\共享名 #登录
net use * /del #清空登录缓存
3. samba 部署与实验
防火墙端口:
[root@centos2 /etc/samba]# firewall-cmd --zone=public --add-port=/tcp
[root@centos2 /etc/samba]# firewall-cmd --zone=public --add-port=/tcp --permanent
[root@centos2 /etc/samba]# firewall-cmd --zone=public --add-port=/tcp
[root@centos2 /etc/samba]# firewall-cmd --zone=public --add-port=/tcp--permanent
[root@centos2 /etc/samba]# firewall-cmd --zone=public --add-port=/tcp
[root@centos2 /etc/samba]# firewall-cmd --zone=public --add-port=/tcp --permanent
[root@centos2 /etc/samba]# firewall-cmd --zone=public --add-port=/tcp
[root@centos2 /etc/samba]# firewall-cmd --zone=public --add-port=/tcp --permanent
3.1 部署:
1. 服务器端安装 samba
[root@centos2 ~]# yum -y install samba
2. 确认客户端和相关命令软件包是否安装(默认安装)
[root@localhost ~]# rpm -q samba-client
[root@localhost ~]# rpm -q samba-common
3. 创建共享区域
备份主配置文件
创建独立的共享区间(仿照模板编写)
4. 启动smb 服务并查看默认共享区域
systemctl start smb
smbclient -U 用户名 -L smbserverIP
3.2 本地验证(登录、上传、下载)
a、修改配置文件(添加自定义共享)
[自定义]
comment = test
path = /data/
public = yes
browseable = yes
writable = yes
b、创建共享目录并给定相应权限
[root@centos2 /]# mkdir data
[root@centos2 /]# chmod data
c、测试配置文件并重启服务
[root@centos2 /etc/samba]# testparm
[root@centos2 /etc/samba]# systemctl start smb
d、创建linux用户
[root@centos2 /etc/samba]# useradd -s /sbin/nologin zhangsan
e、转换为samba用户
[root@centos2 /etc/samba]# pdbedit -a zhangsan
f、客户端查看共享文件并登录测试
[root@localhost ~]# smbclient -U zhangsan -L 192.168.80.129
[root@localhost ~]# smbclient -U zhangsan //192.168.80.129/test
登录报错:protocol negotiation failed: NT_STATUS_IO_TIMEOUT
解决办法:在samba服务器的/etc/hosts文件中添加本机解析(samba服务器自身)
注:由于未设置文件的权限默认,指定用户上传的文件只有自己可以修改和覆盖
3.3 访问控制-通过配置限制
valid users 仅允许部分用户访问共享区域
注:前提条件是指定目录权限给到最大,通过修改配置文件来实现实验结果
部分用户登录samba 服务器
修改/etc/samba/smb.conf 中自定义的共享区域
添加:设置合法用户列表
valid users = 用户,@组(多个逗号隔开)
部分用户对共享区域有写权限
添加:开启只读,设置可写列表
read only = yes
write list = lisi
设置上传文件的默认权限
create mask 文件默认权限
directory mask 目录的默认权限
修改配置文件自定义的共享区域
添加:
create mask = 666
directory mask = 777
[root@centos2 /etc/samba]# vim smb.conf
...
[test]
comment = test
path = /data/
public = yes
browseable = yes
valid users = zhangsan,lisi
read only = yes
write list = lisi
create mask =
directory mask = [root@centos2 /etc/samba]# testparm
[root@centos2 /etc/samba]# useradd -s /sbin/nologin lisi
[root@centos2 /etc/samba]# pdbedit -a lisi
[root@centos2 /etc/samba]# systemctl restart smb
3.4 用户别名(虚拟用户)
1)添加别名(/etc/samba/smbusers)
添加:zhangsan = zs
2)启用别名(修改主配置文件)
vim /etc/samba/smb.conf
添加:
username map = /etc/samba/smbusers
3)测试
smbclient -U 别名 //服务器IP/共享名
3.5 映射网络驱动器(挂载)
Linux下:
临时挂载:
mount -t cifs -o username=xxx,password=xxx //服务器ip/服务器共享 /本地挂载目录
永久挂载:/etc/fstab
//服务器ip/共享 /本地挂载目录 cifs defaults,username=xxx,password=xxx 0 0
windows下:
我的电脑、计算机、此电脑等右键映射网络驱动器【注意是反斜杠\】
网络服务-SAMBA的更多相关文章
- [转载]SELinux 环境下网络服务设置,配置 Apache 、Samba、NFS
原文地址:http://www.ibm.com/developerworks/cn/linux/l-cn-selinux-services1/index.html?ca=drs- 引言 SELinux ...
- Linux服务-samba
目录 1. samba简介 2. samba访问 Linux服务-samba 1. samba简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成. 在 ...
- windows网络服务之配置网络负载均衡(NLB)群集
O首页51CTO博客我的博客 搜索 每日博报 社区:学院论坛博客下载更多 登录注册 家园 学院 博客 论坛 下载 自测 门诊 周刊 读书 技术圈 曾垂鑫的技术专栏 http:// ...
- 简要介绍Linux网络服务的种类
如果有人问你Linux最强大的功能是什么,你大概会回答“是网络功能”.Lmux操作系统的优势之一就是网络功能了,这包含比较稳定的系统资源分配,以及较为安全的网络防护能力,所以许多人都喜欢用它来进行网络 ...
- Salesforce Apex页面中调用远端网络服务
本文介绍了Salesforce Apex页面中调用远端网络服务的实现过程. ### 注册远端网络服务 在使用Apex代码调用远端网络服务之前,首先需要在Salesforce中注册远端网络服务地址, 本 ...
- 1、linux网络服务实验 用PuTTY连接Linux
这个是大三下学期的Linux网络服务配置详解时,感觉老师上得简单,就整理下,岭南师范学院师弟妹有福,如果是蔡老师交的话,可以拿来预习,复习. 一.用PuTTY连接Linux ①.装有redhat系统的 ...
- /etc/xinetd.conf 和 /etc/xinetd.d/*【新网络服务配置】
http://blog.csdn.net/kelven2004/article/details/1701930 xinetd 是 inetd 的安全加强版,它内置了自己的 TCP wrapper, 可 ...
- 在docker里部署网络服务
之前试着玩玩docker有一阵子了,今天算是头一回正式在docker里部署网络服务. 本来想和lxc差不多的东西那自然是手到擒来,没想到还是改了很多. 第一个遇到的问题是,远程连到docker宿主机干 ...
- Nodejs·网络服务
本章是从NodeJS拥有的模块角度,讲述了网络服务中的应用: net ----- > TCP dgram --> UDP http -----> HTTP https ----> ...
随机推荐
- ValueError: Graph disconnected: cannot obtain value for tensor Tensor
一般是Input和下面的变量重名了,导致model里面的input变成了第二次出现的Input变量,而不是最开始模型中作为输入的Input变量 改正方法:给第二个变量赋一个新名字即可
- 【技术博客】Postman接口测试教程 - 环境、附加验证、文件上传测试
Postman接口测试教程 - 环境.附加验证.文件上传测试 v1.0 作者:ZBW 前言 继利用Postman和Jmeter进行接口性能测试之后,我们发现Postman作为一款入门容易的工具,其内置 ...
- INSERT,UPDATE,DELETE时不写日志
我们在维护数据库的过程中,可能会遇到海量数据的存储和维护,但在有的情况下,需要先试验,然后再对实际的数据进行操作,那么在试验这个过程中,我们是不需要写日志的,因为当你对海量数据操作时,产生的日志可能会 ...
- SpringCloud组件学习-图
图很清晰,直接放大浏览器,或者下载下来放大看
- 《Linux就该这么学》培训笔记_ch00_认识Linux系统和红帽认证
<Linux就该这么学>培训笔记_ch00_认识Linux系统和红帽认证 文章最后会post上书本的笔记照片. 文章主要内容: 认识开源 Linux系统的种类及优势特性 认识红帽系统及红帽 ...
- spark 通过keytab 获取认证
/usr/local/spark--bin--cdh5.8.0/bin/spark-submit \ --keytab /home/jj/tl.keytab \ --principal vf@FC.C ...
- CentOS中使用FIO测试磁盘IO性能
$ yum install fio 0x02 命令 随机读: $ fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=randread - ...
- spring boot 从开发到部署(二)—重启服务
上篇中,我们开发并部署上线了一个 spring boot 项目.现在需要编写服务重启脚本,保证服务器重启后能够自动的运行我们的项目. /home/web/sprint-web/restart-happ ...
- [转帖]Hikari 数据源介绍
Hikari 数据源介绍 jimmy・2018 年 09 月 23 日・默认分类 预估 https://izhong.me/index.php/archives/78/ 介绍 官网地址: https: ...
- DELPHI网页开发神器UNIGUI的安装与演示
UNIGUI安装和演示 uniGUI v1.0.0.1397(带注册机).rar在delphi10.2安装 提示:安装包可以自行在网上搜索下载,或者联系我获取都可以 这里讲下怎样安装的方法: 1)执行 ...