在早期的网络世界中,档案数据在不同主机之间的传输大多是使用FTP服务,但是FTP服务传输档案有一些小小的问题,那就是我们无法直接修改主机上面的档案数据,也就是说我们如果想要修改某个档案的数据时,就必须将该档案的服务器下载后才能修改,这样就很麻烦了。其实解决这个问题也很简单,NFS服务就很好的解决档案数据不能直接修改的问题,因为NFS服务是直接将共享目录挂载到客户端的机器上,那么共享目录就好像成了自己的目录一样,共享数据的使用自然就很方便,但是,NFS也有一些小小的问题,它仅能使Unix Like的机器相互分享。那么我要是需要Windows与Unix-Like这两个不同的平台相互分享呢?那该怎么办?也就是说,FTP服务实现了跨平台分享,却无法修改共享数据;NFS解决了共享数据的修改问题,却没办法实现跨平台的共享。所以,SAMBA服务也就随着需要产生了。 它综合了FTP和NFS的有点,既实现了跨平台的传输,还满足了修改数据的功能。
samba的设定流程
samba服务的配置文件 由上述的设定流程,可以看出samba服务的配置文件为服务搭建起到了导向的作用,那么我就先来了解以下samba的基础配置。
符号 | 释义 | 符号 | 释义 |
---|---|---|---|
%m | 客户端主机的NetBIOS名 | %M | 客户端主机的FQDN |
%H | 当前用户家目录路径 | %U | 当前用户的用户名 |
%g | 当前用户所属组 | %h | samba服务器的主机名 |
%L | samba服务器的NetBIOS名 | %I | 客户端主机的IP |
%T | 当前的日期和时间 | %S | 可登录的用户名 |
samba服务器全局配置
“samba服务共享目录配置”
基础的SAMBA服务搭建 要求: 在现有的Linux上搭建一个samba服务,共享/app下的smbtest目录。 在搭建服务之前,我们需要预先安装我们需要的软件
安装完所需的软件之后,我们便可以正式开始搭建SAMBA服务了
在samba服务器上安装samba包
创建samba用户和组
创建samba共享目录,并设置SElinux
samba服务器配置
我在上面的配置文件中简单的设置了,使得team组的用户对共享目录有写权限,而其他用户则只可以浏览共享目录,不能修改共享数据,具体访问如下图:
尝试创建新文件时
我们仍利用上面已经创建好的共享目录lishuyang来进行操作(ps:: 在生产环境中,创建共享目录,建议使用LVM)。 服务端: 在服务端, 我们还需要创建一个普通samba用户smbbase, 作为我们在客户端登陆的拥有较小权限的用户(实现多用户的挂载目的就在于对共享目录获取更大的权限),用户smbbase只有浏览共享目录的权限
useradd -s /sbin/nologin smbbase
smbpasswd -a smbbase
客户端
安装客户端需要的软件 cifs-utils(系统一般默认安装)
编辑文件,将权限较低的smbbase用户的账户信息写入
创建挂载目录并将共享目录挂载到本地挂载目录上
进入/app/mnt目录下,可以发现已经进入到了共享目录下,尝试用smbbase用户修改文件(smbbase没有写权限,所以一定被拒绝写入)
切换到用户lsy,执行如下操作
尝试修改文件(用户lsy拥有写权限,若能修改,则多用户挂载实验成功)
ps:有几个只需要注意的问题:
1,防火墙要关闭, # service iptables stop
2,注意共享目录的权限设置
3,要设置成不需要用户名密码直接访问,需要修改配置文件,将security设置成security = share。