Linux 配置samba服务实现与Windows文件共享
目录:
1、Samba服务介绍
Samba 最先在Linux 和Windows 两个平台之间架起了一座桥梁,正是由于Samba 的出现,我们可以在Linux 系统和Windows 系统之间互相通信,比如拷贝文件、实现不同操作系统之间的资源共享等等,我们可以将其架设成一个功能非常强大的文件服务器,也可以将其架设成打印服务器提供本地和远程联机打印。
Samba 应用环境:
- 文件和打印机共享:文件和打印机共享是Samba 的主要功能,SMB 进程实现资源共享,将文件和
- 打印机发布到网络之中,以供用户可以访问。
身份验证和权限设置:smbd 服务支持user mode 和domain mode 等身份验证和权限设置模式,通过加密方式可以保护共享的文件和打印机。
端口号: 139 和 445
在早期,SMB 运行于NBT 协议(NetBIOS over TCP/IP)上,使用UDP 协议的137、138 及TCP 协议的139 端口。NetBIOS是Network Basic Input/Output System的简称,网络基本输入/输出系统协议。协议,一般指用于局域网通信的一套API,是由IBM公司开发。主要作用:通过NETBIOS协议获得计算机名称,然后把计算机名解析为对应IP地址。
模式: C/S 模式
Samba 常规服务器配置---基本的Samba服务器的搭建流程主要分为四个步骤:
[1]、编辑主配置文件smb.conf,指定需要共享的目录,并为共享目录设置共享权限。
[2]、在smb.conf 文件中指定日志文件名称和存放路径。
[3]、设置共享目录的本地系统权限及samba共享权限。
[4]、重新加载配置文件或重新启动smb 服务,使用配置生效
2、安装samba服务和客户端
# yum install -y samba #samba服务端程序
# systemctl start smb #启动smb服务
# systemctl enable smb #开机自启动smb
# netstat -lnt #查看监听的端口号
tcp 0.0.0.0: 0.0.0.0:* LISTEN
tcp 0.0.0.0: 0.0.0.0:* LISTEN
tcp6 ::: :::* LISTEN
tcp6 ::: :::* LISTEN # yum install -y samba-client #samba客户端程序,如果是需要mount,还需要安装cifs-utils
# yum install -y cifs-utils
3、samba配置文件详解
smb.conf 文件的开头部分为samba 配置简介,告诉我们smb.conf 文件的作用及相关信息。
smb.conf 中还有以“;”开头,这些都是samba 配置的格式范例,默认是不生效滴,可以通过去掉前面的“;”并加以修改来设置想使用的功能。
下面我们说下[global]全局配置中常用字段及设置方法:

[homes]为特殊共享目录,表示用户主目录。
[printers]表示共享打印机。
[share] #设置共享名
comment = Home Directories #对共享名的描述
browseable = yes #是否允许查看此共享内容 。如果是否,用smbclient默认是看不到,只有通过绝对路径,才可以查看到。
path = /tmp/mysql #共享路径,写绝对路径
public = yes #允许匿名查看
readonly = yes
3.1 设置访问用户
如果共享资源存在重要数据的话,需要对访问用户审核,我们可以使用valid users 字段进行设置,格式:
valid users = 用户名
valid users = @组名
3.2 设置目录只读
共享目录如果限制用户的读写操作,我们可以通过readonly 实现哈~,格式:
readonly = yes #只读
readonly = no #读写
3.3 设置目录可写
如果共享目录允许用户写操作,可以使用writable 或write list 两个字段进行设置 writable 格式:
writable = yes #读写
writable = no #只读
write list 格式:
write list = 用户名
write list = @组名
3.4 hosts allow 和 hosts deny 字段的使用
hosts allow #字段定义允许访问的客户端
hosts deny #字段定义禁止访问的客户端
这里我们添加hosts deny 和hosts allow 字段:
hosts deny = 192.168.0.0 #表示禁止所有来自192.168.0.0/24 网段的IP 地址访问
hosts allow = 192.168.0.24 #表示允许192.168.0.24 这个IP 地址访问
注意:当host deny 和hosts allow 字段同时出现并定义滴内容相互冲突时,hosts allow 优先。
4、配置实例
4.1 匿名共享
公司现在用一个工作组MYGROUP, 需要添加samba服务器作为文件服务器,并发布共享目录 /share,共享名为share,这个共享目录允许所有公司员工访问:
CentOS 6 Samba 3.x的配置示例:
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
security = share
passdb backend = tdbsam load printers = yes
cups options = raw [share]
comment = share
path = /share
browseable = yes
guest ok = yes
writable = yes
public=yes
CentOS 7 samba 4.x 配置示例:
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = passdb backend = tdbsam
security = user
map to guest = Bad User load printers = yes
cups options = raw [share]
comment = share
path = /share
browseable = yes
guest ok = yes
writable = yes
public=yes
4.2、通过用户名和密码共享文件
为samba服务器添加安全登陆账户,此账户必须是Linux服务器的账户。先通过命令添加系统账户:
# useradd sales1 #可以不设置密码,Linux服务器账户的密码与samba管理的密码是独立的
第1种方法:使用smbpasswd文件
修改samba global配置文件:
# vim /etc/samba/smb.conf
security = user
passdb backend = smbpasswd
smb passwd file = /etc/samba/smbpasswd
再使用命令:
# smbpasswd -a sales1 #把系统账户sales1添加到samba服务中,会提示你输入密码。
# cat /etc/samba/smbpasswd #在为此账户创建smb共享密码时,会先查看先前设置的共享用户的密码位置,发现没有这个文件夹,然后自动创建这个文件夹。
sale1:500:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:7CE21F17C0AEE7FB9CEBA532D0546AD6:[U ]:LCT-57DFF2F4:
第2种方法:使用passdb数据库做用户认证
修改samba global配置文件:
# vim /etc/samba/smb.conf
security = user
passdb backend = tdbsam
默认情况下,会生成一个数据库文件 /var/lib/samba/private/passdb.tdb ,以后就可以通过命令 pdbedit 去管理账户,但pdbedit 命令只能添加和删除账户,不能更改密码,更改密码就需要用:smbpasswd 命令了。
# pdbedit -a sales1 #添加系统账户sales1到samba服务中
# pdbedit -L #列出samba服务添加的系统账户
# smbpasswd sales1 #修改passdb.tdb数据库中sales1账户的密码
5、客户端挂载与测试
客户端挂载,需要安装:
# yum install -y cifs-utils
# smbclient -L -U sales1 #此命令是查看samba服务器的共享,需要先安装samba-client
# mount.cifs -o user=sales1,password=123456 //10.6.2.199/share /mnt # mount.cifs -o credentials=/etc/samba/passwd //10.6.2.199/share /mnt #可以把用户名和密码
# cat /etc/samba/passwd
username=sales1
password=123456
domain=MYGROUP
6、samba 排错
可以使用命令查看samba服务配置文件加载的问题
# testparm
Linux 配置samba服务实现与Windows文件共享的更多相关文章
- linux配置samba服务【原创】
转载请注明出处http://www.cnblogs.com/paul8339/p/7509981.html 需求,windows服务器访问linux的共享文件,需要linux服务器安装并配置samba ...
- Linux 配置Samba服务
查看系统下是否已经安装了sambarpm -qa |grep samba 安装sambayum -y install samba 配置samba创建目录sambamkdir -p /home/samb ...
- Linux:配置samba服务
配置samba服务 一.简略教程 1.挂载系统 mount /dev/cdrom /mnt/cdrom2.创建用户:useradd linlin3.创建用户密码:passwd linlin4.在用户 ...
- 【Linux】samba服务
samba是一个实现不同操作系统之间文件共享和打印机共享的一种SMB协议的免费软件. ①Samba软件包的安装 使用源安装,在终端中输入如下命令: #sudo apt-get install samb ...
- 利用Linux的Samba服务模拟NT域
利用Linux的Samba服务模拟NT域 Samba是一个与Windows NT具有相同协议的软件包.我们可以利用Samba服务来模拟 Windows NT域,使用户从Windows计算机上直接使用一 ...
- 配置samba服务一例
问题: 在/data/share目录下建立三个子目录public.training.devel用途如下 public目录用于存放公共数据,如公司的规章制度 training目录用于存放公司的技术培训资 ...
- 阿里云linux配置ftp服务
阿里云linux配置ftp服务 一.ftp服务安装 运行以下命令安装ftp yum install -y vsftpd 运行以下命令打开及查看etc/vsftpd cd /etc/vsftpd ls ...
- LINUX 上源代码安装与配置samba服务,支持从windows上读写LINUX文件。
###动机###在windows编写代码文件比较方便,因为有source insight.但是需要在LINUX上编译.一种办法就是使用samba文件共享. [1] 下载samba代码.按照config ...
- linux下Samba服务配置
SMB是基于客户机/服务器型的协议,因而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端,例如,一台在Linux 下已经架设好的Samba服务器,windows客户端就可 ...
随机推荐
- 事务控制语句,begin,rollback,savepoint,隐式提交的SQL语句
事务控制语句 在MySQL命令行的默认设置下,事务都是自动提交的,即执行SQL语句后就会马上执行COMMIT操作.因此开始一个事务,必须使用BEGIN.START TRANSACTION,或者执行SE ...
- C#(winform)的label自动换行
Label 是没有自动换行属性的,不像Textbox有WordWrap属性 尽管没有自动换行的属性,但也能够自动换行, 首先 AutoSize改成false; 然后调整 Label的大小,长和宽 (也 ...
- java设计模式 --------单利模式
解法一:只适合单线程环境(不好) package test; /** * @author xiaoping * */ public class Singleton { private static S ...
- 低版本的linux系统装samba服务器
这里所用系统fedora14,安装samba服务器.我是壮壮熊. 由于工作原因,需要在feaord14上装samba服务器. 问题描述:用yum -y install samba安装samba后,需要 ...
- 使用 DL4J 训练中文词向量
目录 使用 DL4J 训练中文词向量 1 预处理 2 训练 3 调用 附录 - maven 依赖 使用 DL4J 训练中文词向量 1 预处理 对中文语料的预处理,主要包括:分词.去停用词以及一些根据实 ...
- UICollectionView二级树展开
公司项目是社区类的,上周就下载了些社区类APP看了下,发现小区无忧首页的顶部蛮好玩,就试着做了一下,现在先把UICollectionView的二级树展开功能分享一下 . 1.效果图 2.创建子Coll ...
- Git——新手入门与上传项目到远程仓库GitHub
Git:先进的分布式版本控制系统,一个开源式的分布式版本控制工具. Git安装 在Windows操作系统下,访问Git下载地址https://git-for-windows.github.io/ 注册 ...
- Sping框架初步使用1
Spring核心容器的理论:Spring核心容器就是一个超大工厂,所有的对象都会被当成Spring容器的核心管理对象,Spring把容器中一切对象统称为Bean(只要是一个Java类,Spring就可 ...
- ios开发 学习积累20161101
20161101 XML的声明 <?XML version="1.0" encoding="UTF-8" ?> XML文档必须有根元素 XML 对大 ...
- apache-kylin 权威指南—读书笔记
1. 概述 kylin 是 OLAP 引擎,采用多维立方体预计算技术,可将大数据的 SQL 查询速度提升到亚秒级别. 需求: 虽然像 spark,hive 等使用 MPP 大规模并行处理和列式存储的方 ...