SAMBA服务的搭建和访问

SAMBA服务的产生

在早期的网络世界中,档案数据在不同主机之间的传输大多是使用FTP服务,但是FTP服务传输档案有一些小小的问题,那就是我们无法直接修改主机上面的档案数据,也就是说我们如果想要修改某个档案的数据时,就必须将该档案的服务器下载后才能修改,这样就很麻烦了。其实解决这个问题也很简单,NFS服务就很好的解决档案数据不能直接修改的问题,因为NFS服务是直接将共享目录挂载到客户端的机器上,那么共享目录就好像成了自己的目录一样,共享数据的使用自然就很方便,但是,NFS也有一些小小的问题,它仅能使Unix Like的机器相互分享。那么我要是需要Windows与Unix-Like这两个不同的平台相互分享呢?那该怎么办?也就是说,FTP服务实现了跨平台分享,却无法修改共享数据;NFS解决了共享数据的修改问题,却没办法实现跨平台的共享。所以,SAMBA服务也就随着需要产生了。 它综合了FTP和NFS的有点,既实现了跨平台的传输,还满足了修改数据的功能。



SAMBA服务的配置文件

samba的设定流程

  1. 服务器整体设定方面:在smb.conf当中设定好工作组、NetBIOS主机名、密码使用状态(无密码分享或 本机密码)等等;
  2. 规划准备分享的目录参数:在smb.conf内设定好预计要分享的目录或装置以及可供使用的账号数据;
  3. 建立所需要的文件系统:根据步骤2的设定,在linux文件系统当中建立好分享出去的档案或装置,以及相关的权限参数
  4. 建立可用samba的账号:根据步骤2的设定,建立所需的linux实体账号,再一pdbedit建立使用的samba的密码
  5. 启动服务:启动samba的smbd,nmbd服务,开始运转。

samba服务的配置文件
由上述的设定流程,可以看出samba服务的配置文件为服务搭建起到了导向的作用,那么我就先来了解以下samba的基础配置。

  • smb.conf继承了.ini文件的格式,用[ ]分成了不同的部分
  • 全局设置:[global] 服务器通用或全局设置的部分
  • 特定共享设置:[homes] 用户的家目录共享;[printers] 定义打印机资源和服务;[sharename] 自定义的共享目录配置。
  • 宏定义:
符号 释义 符号 释义
%m 客户端主机的NetBIOS名 %M 客户端主机的FQDN
%H 当前用户家目录路径 %U 当前用户的用户名
%g 当前用户所属组 %h samba服务器的主机名
%L samba服务器的NetBIOS名 %I 客户端主机的IP
%T 当前的日期和时间 %S 可登录的用户名

samba服务器全局配置

  • workgroup 指定工作组名称
  • server string 主机注释信息
  • netbios name 指定NetBIOS名
  • interfaces 指定服务侦听接口和ip
  • hosts allow 可用“,”,空格,或tab分隔,默认允许所有主机访问,也可在每个共享独立配置。
  • hosts deny 拒绝指定主机访问
  • config file = /etc/samba/conf.d/%U 用户独立的配置文件
  • Log level = 2 日志级别,默认为0,不记录日志
  • max log size = 50 日志文件达到50k,将轮循rotate,单位KB
  • passdb backend = tdbsam 密码数据库格式

“samba服务共享目录配置”

  • 每个共享目录应该有独立的[ ]部分
  • [共享名称] 远程网络看到的共享名称
  • comment 注释信息
  • path 所共享的目录路径
  • public 能否被guest访问的共享,默认为no,和guest ok类似
  • browsable 是否允许所有用户浏览此共享,默认为yes,no为隐藏
  • writeable = yes 可以被所有用户读写,默认为no
  • read only = no 和 writeable = yes 等价,如与以上设置发生冲突,放在后面的设置生效,默认只读
  • write list 三种形式:用户,@组名(如writeable=no,列表中用户或组可读写,不在列表中用户只读)
  • valid users 特定用户才能访问该共享,如为空,将允许所有用户访问,用户名之间用空格分隔

SAMBA服务的搭建

基础的SAMBA服务搭建
要求: 在现有的linux上搭建一个samba服务,共享/app下的smbtest目录。
在搭建服务之前,我们需要预先安装我们需要的软件

  • samba:这个软件主要提供了SMB服务器所需的各项服务程序(smbd及nmbd)以及其他与SAMBA相关的logrotate配置文件及开机默认选项档案等
  • samba-common:这个软件提供的则是服务器与客户端都会使用到的数据,包括SAMBA的主要配置文件(smb.conf)、语法检验指令(testparm)等等;

安装完所需的软件之后,我们便可以正式开始搭建SAMBA服务了

  1. 在samba服务器上安装samba包

    yum - y install samba
  2. 创建samba用户和组
    groupadd -r team
    useradd -s /sbin/mologin -G team lsy
    smbpasswd -a lsy
    useradd -s /sbin/nologin qjc
    smbpasswd -a qjc

  3. 创建samba共享目录,并设置SElinux
    mkdir ./app/smbtest
    chgrp team /app/smbtest
    setfacl -m g:team:rwx /app/smbtest/
    setfacl -m u:qjc:rwx /app/smbtest/
    chcon -Rt samba_share_t  /app/smbtest
  4. samba服务器配置
    vim /etc/samba/smb.conf


    启动samba服务


windows客户端访问

我在上面的配置文件中简单的设置了,使得team组的用户对共享目录有写权限,而其他用户则只可以浏览共享目录,不能修改共享数据,具体访问如下图:

  1. 客户端登陆


  2. 以team组成员lsy身份进入共享目录, 则可以在目录中创建,编辑文件
  3. 再以qjc的身份进入共享目录,因为没有写权限,所以只能访问,创建文件会被拒绝



    尝试创建新文件时
  4. 同时我们再服务器端共享目录下,可以查看到lsy用户创建的文件

SAMBA服务实现多用户挂载(仅centos7支持)

我们仍利用上面已经创建好的共享目录lishuyang来进行操作(ps:: 在生产环境中,创建共享目录,建议使用LVM)。
服务端:
在服务端, 我们还需要创建一个普通samba用户smbbase, 作为我们在客户端登陆的拥有较小权限的用户(实现多用户的挂载目的就在于对共享目录获取更大的权限),用户smbbase只有浏览共享目录的权限

useradd -s /sbin/nologin smbbase
smbpasswd -a smbbase

客户端

  1. 安装客户端需要的软件 cifs-utils(系统一般默认安装)
  2. 编辑文件,将权限较低的smbbase用户的账户信息写入
  3. 创建挂载目录并将共享目录挂载到本地挂载目录上



  4. 进入/app/mnt目录下,可以发现已经进入到了共享目录下,尝试用smbbase用户修改文件(smbbase没有写权限,所以一定被拒绝写入)

  5. 切换到用户lsy,执行如下操作
    cifscreds add 192.168.100.127

  6. 尝试修改文件(用户lsy拥有写权限,若能修改,则多用户挂载实验成功)

ps:有几个只需要注意的问题:

  1,防火墙要关闭, # service iptables stop

  2,注意共享目录的权限设置

  3,要设置成不需要用户名密码直接访问,需要修改配置文件,将security设置成security = share。

原文地址:http://blog.51cto.com/13866567/2296457

时间: 2024-11-06 22:15:06

SAMBA服务的搭建和访问的相关文章

Samba 服务的搭建

一.服务概述 SMB/CIFS SMB(Server Message Block,服务消息块) CIFS(CommonInternet FIle System,通用互联网文件系统) Samba服务通常用来做文件服务器,它可以实现 windows 与类 Unix 实现共享打印机,共享文件等功能,samba 底层也是 CIFS 协议. 二.安装需要的软件包 samba                服务端软件 samba-client        客户端软件 samba-common       

samba服务简单搭建

[samba] 服务端:#yum  install -y  samba samba-client  samba-common#mkdir /westos#touch /westos/sambafile#vim /etc/samba/smb.conf#useradd -s /sbin/nologin  chengcheng#smbpasswd -a chengcheng#chown -R  chengcheng /westos#vim /etc/samba/smb.conf[hello]comme

linux samba服务 建立可匿名访问文件共享

5 samba服务 SMB(Server MessagesBlock,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务.SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统.打印机及其他资源. /etc/samba/smb.conf          主配置文件 [global]                                   全局设置 workgroup = MORKGROU

Samba服务(匿名用户访问、本地用户访问、虚拟用户访问)

Samba是一个实现不同操作系统(Windows.Linux.UNIX)之间文件共享和打印机共享的一种SMB协议的免费软件.SMB协议是客户机/服务器协议,客户机通过该协议可以访问服务器上的共享文件及打印机共享资源.它主要应用于局域网上,也可以通过设置"NetBIOS over TCP/IP"同互联网中的电脑分享资源. SMB协议:TCP 139端口 CIFS协议:TCP 445端口 重要配置文件: /etc/samba/smb.conf: SAMBA的主配置文件,内有丰富的说明,也可

基于Centos 7的Samba服务的搭建及相关实验(纯实验)

Samba概述 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务.SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统.打印机及其他资源.通过设置"NetBIOS over TCP/IP"使得Samba不但能与局域网络主机分享资源,还能与全世

Centos 7的Samba服务的搭建

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务.SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统.打印机及其他资源.通过设置"NetBIOS over TCP/IP"使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源

Samba服务端搭建与配置

1.安装:yum -y install samba samba-client samba-common 2.启动:systemctl start nmb.servicenmdb:这个daemon是用来管理工作组.NetBIOS(Network Basic Input/Output System) name等解析工作.主要利用UDP协议开启137.138端口来负责解析任务.systemctl start smb.servicesmdb: 这个daemon是用来管理samba主机分享的目录.档案和打

samba服务的搭建

系统环境: [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [[email protected] ~]# uname -r 3.10.0-327.el7.x86_64 [[email protected] ~]# ip addr show enp0s8 | awk 'NR==3{print $2}' 192.168.235.36/24 #关闭防火墙和selinux #安装sam

Centos下samba服务快速搭建

准备工作: 先排除系统安全机制干扰,关闭iptables.selinux service iptables stop setenforce 0 ++++++++++++++++++++++++++++++++++++ 1.安装samba(CentOS Linux): yum install samba system-config-samba samba-client samba-common 2.创建系统用户账号 /usr/sbin/groupadd www /usr/sbin/useradd