网络共享服务(三)之SAMBA
前面说到了FTP和NFS,由于FTP是客户端和服务器基于ftp应用协议进行交换数据的,它不支持挂载共享目录的方式,而NFS又不支持跨平台,所以就催生了第三种网络共享服务:samba
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。
至于SMB为什么最后叫Samba,当时的大学生 Tridgwell去申请 SMBServer ( Server Message Block 的简写 ) 这个名字来做为他撰写的这个软件的商标,可惜的是,因为SMB 是没有意义的文字,因此没有办法达成注册。既然如此的话,那么能不能在字典里面找到相关的字词可以做为商标来注册呢?翻了老半天,呵呵!这个SAMBA刚好含有 SMB ,又是热情有劲的拉丁舞蹈的名称,不如就用这个名字来做为商标好了。如此,这成为我们今天所使用的SAMBA 的名称由来。
samba监听的端口:
137/udp,138/udp,139/tcp,445/tcp
samba在linux上实现三种服务: 默认启用前两个服务
nmbd: 实现netbios协议
smbd: 实现cifs协议
winbindd: 实现让samba工作后能够将linux加入到ad域(活动目录中)
Note:
CIFS: Common Internet File System,Windows各主机之间共享文件系统的协议,类似于linux上的nfs
NetBIOS: Windows基于主机名实现互相通信的机制;只截取15个字符的主机名
一、CentOS6为客户端,Windows为服务端
1.服务器端操作
创建共享目录
新建文件夹test
点选工具 --> 文件夹选项 --> 查看 --> 取消使用简单文件共享 --> 应用 --> 确定
右键test文件夹 --> 共享和安全 --> 选中共享此文件夹(可以修改共享文件名,比如这里设为tools,下面会用到) --> 权限 --> 添加 --> 选中test用户 --> 确定 --> text的权限可以勾上读取和更改 --> 确定
windows添加用户:右键我的电脑 --> 管理 --> 本地用户和组 --> 用户 --> 右键空白区域新增用户(比如test用户)
2. 客户端操作
安装samba客户端
yum list samba-client* //查看samba相关安装包,默认已安装客户端samba-client
3. 客户端访问服务器端数据
3.1. 交互式数据访问:
客户端以test用户连接服务器
samblient -L HOST -U USERNAME
# smbclient -L 192.168.1.301 -U test //192.168.1.301为windows服务器ip, test为登录用户名
获取到共享信息后,连接共享文件夹
smbclient //SERVER/shared_name -U USERNAME //UNC路径: \\SERVER\shared_name
# smbclient //192.168.1.301/tools -U test
连上后打开一个类似于ftp的客户端工具
smb:\>
测试上传数据到服务器
smb:\> lcd /etc
smb:\> put fstab
3.2. 基于挂载的方式访问
挂载到/mnt目录下
mount -t cifs //SERVER/shared_name /mount_point -o username=USERNAME,password=PASSWORD
# mount -t cifs //192.168.1.301/tools /mnt -o username=test
访问数据
ls -l /mnt //windows上的文件默认都有执行权限
二、以CentOS6为服务端,windows作为客户端
1.服务端操作:
安装samba
CentOS 6默认已经安装好了samba的客户端程序,这里要做服务端,所以安装samba服务端程序:samba.x86_64
# yum -y install samba
samba相关文件组成:
服务脚本:
/etc/rc.d/init.d/nmb
/etc/rc.d/init.d/smb
主配置文件:
/etc/samba/smb.conf
samba用户:
账号:都是系统用户,/etc/passwd
密码:samba服务自有密码文件
将系统用户添加为samba用户的命令:
smbpasswd:
-a Sys_User:添加系统用户为samba用户
-d Sys_User: 禁用指定用户账号
-e Sys_User: 启用指定用户账号
-x Sys_User: 删除指定用户账号
修改工作组
# cd /etc/samba
# vim smb.conf
修改workgroup = WORKGROUP //windows工作组默认为workgroup,CentOS工作组默认为MYGROUP
添加系统账号
# useradd smbuser1 //添加系统账号
# smbpasswd -a smbuser1 //将smbuser1密码添加到smbuser1账号中
测试
客户端windows系统连接服务器:
\\192.168.1.104\
输入用户名和密码
登录到用户的家目录
三、多个用户账号登录同一个共享目录
1.服务器端操作:
编辑samba配置文件: /etc/samba/smb.conf
# vim /etc/samba/smb.conf
最后一行添加自定义共享:
[shared_name]
path = /path/to/share_directory //共享文件路径
comment = Comment String //注释信息
guest ok = {yes|no} //是否允许来宾账号访问
public = {yes|no} //是否允许公开
writable = {yes|no} //是否可写
read only = {yes|no} //是否只读
write list = +GROUP NAME //哪些组中用户可写
比如:
[shared]
comment = My Shared Testing.
path = /shared/samba
guest ok = yes
writable = yes
测试语法:
# testparm
创建共享目录:
# mkdir /shared/samba
# ls -ld /shared/samba //smbuser1没有写权限
# setfacl -m u:smbuser1:rwx /shared/samba //设置smbuser1用户能读能写能执行
重启服务:
# service nmb restart;service smb restart;
2. 客户端操作
安装samba客户端:
# yum -y install samba-client
连接服务器:
# smbclient //192.168.1.104/shared -U smbuser1 //注意:客户端访问的是配置段定义的名字shared,而不是创建的目录
3. 测试
客户端连接完服务器后,打开一个类似ftp的客户端:
smb:\> lcd /etc
smb:\> put fstab //成功上传
四、samba图形化工具: samba-swat
安装samba-swat
# yum install samba-swat -y
工具介绍:
这个工具是基于web服务提供图形界面,它自己提供了web服务器,以超级守护进程xinetd代为管理,在/etc/xinetd.d目录下有个文件swat
打开swat文件
# vim swat
# default: off
# description: SWAT is the Samba Web Admin Tool. Use swat \
# to configure your Samba server. To use SWAT, \
# connect to port 901 with your favorite web browser.
service swat
{
port = 901
socket_type = stream
wait = no
only_from = 127.0.0.1 //这里改为192.168.1.0/24
user = root
server = /usr/sbin/swat
log_on_failure += USERID
disable = yes //改为 no
}
重启xinetd服务
# service xinetd restart
测试:
浏览器输入: 192.168.1.104:
练习:建立samba共享,共享目录为/data,要求:
(1)共享名为shared,工作组为alen
(2) 添加组为develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组,密码均为用户名
(3) 添加samba用户gentoo,centos和ubuntu,密码均为”alen“
(4) 此samba共享shared仅允许develop组具有写权限,其他用户只能以只读方式访问
(5) 此samba共享服务仅允许来自192.168.1.0/24网络的主机访问
服务端安装samba服务:
# yum install samba
# cd /etc/samba
# vim smb.conf
修改工作组: workgroup = alen
hosts allow = 192.168.1.0/24
添加组及用户:
# groupadd develop
# useradd ubuntu
# useradd -G develop gentoo
# useradd -G develop centos
# echo "gentoo" | passwd --stdin gentoo
# echo "centos" | passwd --stdin centos
# echo "ubuntu" | passwd --atdin ubuntu
添加系统用户为samba用户:
# smbpasswd -a gentoo; 密码为alen
# smbpasswd -a centos; 密码为alen
# smbpasswd -a ubuntu; 密码为alen
添加共享配置段:
[shared]
comment = shared file
path = /data
guest ok = yes
write list = +develop
测试语法:
# testparm
develop组对共享目录添加写权限:
# mkdir /data
# setfacl -m g:develop:rwx /data
客户端访问:
# smbclient //192.168.1.103/shared -U centos
网络共享服务(三)之SAMBA的更多相关文章
- 网络共享服务(一)之FTP
网络共享服务:ftp,nfs,samba比较 从跨平台角度说, samba, ftp差不多, 而nfs不支持windows平台 从挂载角度说, samba, nfs可以把远程目录挂载到本地目录上, 对 ...
- 网络共享服务(二)之NFS
NFS: Network File System,是一种基于TCP/IP传输的网络文件系统协议,最初由SUN公司开发.通过使用NFS协议,客户机可以像访问本地目录一样访问服务器中的共享资源.但是,NF ...
- 网络共享服务—SAMBA服务
SAMBA服务简介 SMB:Server Message Block服务器消息块,IBM发布,最早是DOS网络文件共享协议 Cifs:common internet file system,微软基于S ...
- Linux网络共享管理(ssh,nfs,samba)
OpenSSH服务器: ssh协议:提供安全的ssh环境用于远程管理,默认端口:22: 服务名称:sshd openssh-server包的安装文件: 使用ssh客户端程序: 连接目标主机: ssh ...
- nfs网络共享服务基础
nfs原理 1.开启RPC服务 2.NFS向RPC服务注册启动的端口 3.用户向RPC询问NFS服务的端口 4.RPC返回端口给客户端 5.客户端通过获得的端口与NFS服务器进行数据传输 实验步骤 一 ...
- NFS网络共享服务 挂载参数及优化 内核优化建议
配置NFS服务端 nfs01上安装软件 [root@nfs01 ~]# yum install nfs-utils rpcbind -y nfs-utils:NFS服务的主程序,包括rpc.nfsd. ...
- NFS网络共享服务部署
10.3 NFS服务端部署环境准备 10.3.1 NFS服务部署服务器准备 服务器系统 角色 IP Centos6.7 x86_64 NFS服务器端(NFS-server) 192.168.1.14 ...
- win7老是弹出“Windows Media PIayer网络共享服务配置应用程序 已停止工作”
应是优化软件的时候把服务禁止启动了. 我的电脑 > 管理 > 服务和应用程序 > 服务 Windows Media Player Network Sharing Service 启动 ...
- Linux实战教学笔记22:企业级NFS网络文件共享服务
目录 第二十二节 企业级NFS网络文件共享服务 第一章 NFS网络文件共享服务 1.1 NFS介绍 1.2 NFS系统原理介绍 1.3 NFS服务端部署环境准备 1.4 NFS server端的设置 ...
随机推荐
- YUM源部署和使用
1.前言 为什么需要内部yum源呢,有可能是业务内部的服务器对外是不通了,居于一些安全方面的考虑.内部yum源又有什么好处呢,第一,速度快:第二,内网可控,外网有问题也不影响内网包的下载和安装等. 2 ...
- android 基础学习笔记2
1.容器布局 一.线性布局 (LineaLayout) 方向:orientation =vertical / horizontal 重力(对齐) :gravity =bottom/right/left ...
- 《Head first设计模式》之观察者模式
观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新. 客户有一个WeatherData对象,负责追踪温度.湿度和气压等数据.现在客户给我们提了个 ...
- js - 面向对象 - 小案例:轮播图、随机点名、选项卡、鼠标拖拽
面向对象 对象 : (黑盒子)不了解内部结构, 知道表面的各种操作. 面向对象 : 不了解原理的情况下 会使用功能 . 面向对象是一种通用思想,并非编程中能用,任何事情都能用. 编程语言的面向对象的特 ...
- 将win10激活为专业工作站版并且永久激活(图文详细教程)
简介 win10升级为专业版.教育版.专业工作站版永久激活详细图文教程(注:只要使用相对应的产品密钥,所有的版本都可以激活) win10家庭版其实就是阉割版,越来越多的人想升级为专业版.很多电脑用户选 ...
- Java Stack使用
1.Stack继承自Vector.遵从先进后出的规则. 2.Stack 是线程同步的.(map.List.Set是线程不同步的,需要在外部封装的时候来同步) 试例代码: public static v ...
- ELF文件之一——
ELF文件整体布局 下图是后来例子中main.o和main.elf的布局. 其中,只有elf header的位置是固定的,固定在文件开始,其它部分的位置都不确定. 比如下面的main.o布局中,.te ...
- win10电脑搭建网站
新建网站之后,IIS错误提示是:在计算机“.”上没有找到服务W3SVC,需要在“启动或关闭windows功能”添加.net 3.5下面的两个程序. https://img-blog.csdn.net/ ...
- C#实现读取IPv6 UDP Socket数据,再发送出去
C#实现读取IPv6 UDP Socket数据,再发送出去. 不知为何,黑框点一下就停止刷新了,再点一下,就继续刷新了. using System; using System.Collections. ...
- Django 配置文件 settings.py
1. dubug配置 DEBUG=False 2. 数据库配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', &qu ...