一、实验环境(仅做参考,可以用更新版本)
Linux版本:CentOS-6.5-i386-bin-DVD1
虚拟机:VMware Workstation Pro14.1.3
虚拟机设置为桥接模式,虚拟机中的Linux和window7网络处在同一网段。

二、实验要求
1.创建两个部门ZHB、JSB的文件夹,每个部门2个人zhb1、zhb2和jsb1、jsb2,设置文件共享密码;
2.创建一个两个部门都可以看的文件夹,共享名叫DJKK,ZHB和JSB两部门的人登录账号密码后就可以查看内容;
3.创建一个文件夹,只有指定的人可看,共享名为MM,只有mm可以看见这个文件夹,设置文件共享密码,mm登录账号密码后可以读写、修改、执行的权利;
4.部门内部的文件只能内部人员查看,别的部门不能查看。

三、安装Samba
查看系统是否安装了samba,一般要有6个包才是正确的。
rpm -qa|grep samba

若没有上面6个,尤其是上面红框类似的包,则安装samba(我这里本来就有,yum一次就等于升级,例如我有安装包,实际上不用进行安装)。
yum install samba -y

再次查看是否安装成功!

设置开机启动samba服务

四、设置防火墙
将iptables防火墙开放137、138、139、445端口(也可以直接将防火墙关闭,但在实际情况中,若公司关闭了防火墙那很危险)。
vi /etc/sysconfig/iptables,手动添加配置。
SMB——TCP 139 445;NMB——UDP 137 138

关闭SELinux 记住:一定要关闭selinux(否则会造成windows客户机连接Samba失败)
vi /etc/selinux/config,将SELINUX=enforcing,修改为SELINUX=disabled。

[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
Permissive

五、配置smb服务
vi /etc/samba/smb.conf,使用%d清除原配置,重新配置。建立三个权限不同的用户做对比,homes共享文件夹Samba用户可以查看,zhb其它Samba用户不可见,只有smb2用户可见、可写、可读,jsb共享文件所有人可见。
配置如下:

  [root@localhost ~]# vi /etc/samba/smb.conf[global]workgroup = MYGROUP    #工作组名称server string = Samba Server Version %v    #服务器描述信息,一般为版本信息,可以为空log file = /var/log/samba/log.%m      #日志文件路径和名称max log size = 50   #如果日志文件的大小超过50KB,则重新记录security = user    #用户登录安全级别:share、user、server、domainpassdb backend = tdbsam     #设置共享账户文件(后台)类型,共有3种,smbpasswd、tdbsam、ldapsam,默认为tdbsamprinting = cups   #设置Samba共享打印机的类型。现在支持的打印系统有:bsd, sysv,plp, lprng, aix, hpux, qnxprintcap name = cups    #设置共享打印机的配置文件load printers = yes       #设置在Samba服务启动时是否共享打印机设备cups options = raw    #指定打印机的工作模式[DJKK]comment = Do not arbitrarily modify the database filepath = /home/dajiakekanpublic= nowritable = yes[ZHB]comment = sambashare   #共享文件的名字path = /zhb/zonghebu   #对该共享的描述,可以是任意字符串browseable = yes   #设置共享文件夹在Window的网上邻居中是否可见,此处设置可见writable = yes      #该共享路径是否可写,此处为可写valid users = @ZHB     #设定只有ZHB用户组这个用用户可以访问,可以设置为其它,多个指定用户,如:zhb1、zhb2等。public= no       #该共享是否允许guest账户访问,此处为不允许create mask=0664    #定义用户在此共享资源中创建的文件的权限。 此例中为:拥有者和拥有者组有读和写的权限,而其他用户仅为读的权限。directory mask=0775  #在共享文档中创建的文件夹的权限。 此例为拥有者和组有读写执行的权限,其他用户只有读和执行的权限。[JSB]comment = suibainpath = /jsb/jishububrowseable = yeswritable = yesvalid users = @JSBpublic= nocreate mask=0664directorymask=0775


设置完毕后启动smb服务

[root@localhost ~]# service smb start
启动 SMB 服务:                                            [确定]

在win7中用快捷键“Win+R”就可以打开“运行”程序,我的服务器IP为192.168.199.200,在运行中输入\192.168.199.200,如下。

点击“确定”,在没有建立对应的文件夹之前会出现如下图情况。

这是什么原因?因为只有smb.conf配置中规定了路径,但实际上还没建立文件路径。要建立对应的文件夹,配置时,我设置了3个共享文件的路径,此刻建立对应的文件夹,如下。

[root@localhost ~]# mkdir -p /home/dajiakekan
[root@localhost ~]# mkdir -p /zhb/zonghebu
[root@localhost ~]# mkdir -p /jsb/jishubu

然后分别在对应共享文件夹中建立文档

[root@localhost ~]# touch /home/dajiakekan/大家都可以看见.txt
[root@localhost ~]# touch /zhb/zonghebu/综合部可见.txt
[root@localhost ~]# touch /jsb/jishubu/技术部可见.txt
[root@localhost home]# ls /home/dajiakekan/
大家都可以看见.txt

建立完以后查看一下

[root@localhost ~]# ls /home/dajiakekan/
大家都可以看见.txt
[root@localhost ~]# ls /zhb/zonghebu/
综合部可见.txt
[root@localhost ~]# ls /jsb/jishubu/
技术部可见.txt

建立完了以后,其实还是访问不了的,因为没有建立samba用户。在没有建立用户之前访问是这样的,如下。

建立用户及用户组
建立ZHB、JSB这两个用户组,以及zhb1、zhb2、jsb1、jsb2等四个用户如下,并把zhb1、zhb2加入到ZHB组,jsb1、jsb2加入到JSB组,将设置的系统用户添加至samba用户并设置密码。useradd -G ZHB zhb1(建立用户zhb1同时加入到ZHB用户组)。

[root@localhost ~]# groupadd ZHB
[root@localhost ~]# groupadd JSB
[root@localhost ~]# useradd -G ZHB zhb1
[root@localhost ~]# useradd -G ZHB zhb2
[root@localhost ~]# useradd -G JSB jsb1
[root@localhost ~]# useradd -G JSB jsb2
[root@localhost ~]# smbpasswd -a zhb1
New SMB password:
Retype new SMB password:
Added user zhb1.
[root@localhost ~]# smbpasswd -a zhb2
New SMB password:
Retype new SMB password:
Added user zhb2.
[root@localhost ~]# smbpasswd -a jsb1
New SMB password:
Retype new SMB password:
Added user jsb1.
[root@localhost ~]# smbpasswd -a jsb2
New SMB password:
Retype new SMB password:
Added user jsb2.

pdbedit 命令说明
pdbedit 命令用于管理Samba服务的帐户信息数据库,格式为:“pdbedit [选项] 帐户”
第一次把用户信息写入到数据库时需要使用-a参数,以后修改用户密码、删除用户等等操作就不再需要了。

pdbedit -L :查看samba用户
pdbedit -a -u user:添加samba用户
pdbedit -r -u user:修改samba用户信息
pdbedit -x -u user:删除samba用户

samba服务数据库的密码也可以用 smbpasswd 命令 操作
smbpasswd -a user:添加一个samba用户
smbpasswd -d user:禁用一个samba用户
smbpasswd -e user:恢复一个samba用户
smbpasswd -x user:删除一个samba用户

查看添加的组内成员的所有者、所属组、附加组

[root@localhost ~]# id zhb1
uid=500(zhb1) gid=500(zhb1) 组=500(zhb1),504(ZHB)
[root@localhost ~]# id zhb2
uid=501(zhb2) gid=501(zhb2) 组=501(zhb2),504(ZHB)
[root@localhost ~]# id jsb1
uid=502(jsb1) gid=502(jsb1) 组=502(jsb1),505(JSB)
[root@localhost ~]# id jsb2
uid=503(jsb2) gid=506(jsb2) 组=506(jsb2),505(JSB)

重新启动Samba服务
service smb restart或者/etc/init.d/smb restar

[root@localhost ~]# service smb restart
关闭 SMB 服务:                                            [确定]
启动 SMB 服务:                                            [确定]

正式采用windos客户机测试(这里采用的win7,win10访问会存在问题,需要设置)。
以zhb1、zhb2登入测试,可以看见三个文件夹,zhb这个文件夹里面的内容只有ZHB的人可以看见,jsb这个共享文件夹双击,无法进入,是因为ZHB的人没有权限。



以jsb1、jsb2登入测试,可以看见三个文件夹,jsb这个文件夹里面的内容只有JSB的人可以看见,zhb这个共享文件夹双击,无法进入,是因为jsb的人没有权限。


注意:同一台window系统客户机中切换多个samba账号的话,需要清理缓存才能成功。
1.打开win的命令行(ctrl+R,输入cmd)。
2.在命令行里输入net use,就会打印出当前缓存的连接上列表。
3.根据列表,一个个删除连接: net use 远程连接名称 /del;
或者一次性全部删除:net use * /del。

这样再次命令行输入samba服务地址的时候,就会重新让你输入访问的账户和密码了。

最后一个重点建立一个大家都看不见的共享文件(其它用户登录共享,直接看不见该文件夹),只有一个指定的人看见。
在/etc/samba下建立一个文本文件其名称为mm.smb.conf,并进行配置,步骤如下。

[root@localhost ~]# cd /etc/samba
[root@localhost samba]# touch mm.smb.conf
[root@localhost samba]# vi mm.smb.conf
[MM]comment = This is smb mmpath = /mm     #共享路径为/mmvalid users = mm   #只有mm能够访问write list = mm   #mm有写的权限

建立对应目录及文件

[root@localhost samba]# cd
[root@localhost ~]# mkdir -p /mm
[root@localhost ~]# touch /mm/这个文本只有mm可以看.txt
[root@localhost ~]# ls /mm/
这个文本只有mm可以看.txt

为用户mm设置samba账户和密码

[root@localhost ~]# useradd mm
[root@localhost ~]# smbpasswd -a mm
New SMB password:
Retype new SMB password:
Added user mm.
[root@localhost ~]#

引用子配置文件。在引用子配置文件时有2种方法:
①config file:在[global]标签下入如下参数:
[global]
config file = /etc/samba/%U.smb.conf

②include:在[global]标签下入如下参数:
[global]
include = /etc/samba/%U.smb.conf
注意:config file和include的区别是:使用config file时,当以mm的身份访问Samba服务器,只能浏览到mm,其他在smb.conf中定义的共享资源都无法查看;当以mm的身份访问Samba服务器,只能浏览到mm,其他在smb.conf中定义的共享资源都无法查看。使用include时,当以mm的身份访问Samba服务器,除了可以浏览到mm,其他在smb.conf中定义的共享资源也可以浏览到,可以看见djkk(mm查看内容)、jsb(无法查看内容)、zhb(mm无法查看内容)文件夹。

此次这里采用include设置,回到/etc/samba/smb.conf设置,添加include = /etc/samba/%U.smb.conf。

重新启动smb服务
[root@localhost ~]# service smb restart
关闭 SMB 服务: [确定]
启动 SMB 服务: [确定]

重新以jsb1和mm分别进行访问\192.168.199.200



六、实验结束

附录:其他搭建Samba设置及相关配置参考
Linux下部署Samba服务环境的操作记录
CentOS6.5下搭建Samba服务实现与Windows系统之间共享文件资源
linux中Samba服务器配置
Samba服务的配置总结
Linux系统服务搭建之samba
centos6.5下 搭建 samba
CentOS6.5下samba服务器搭建与配置
CentOS6.5环境下搭建Samba服务器实施方案
CentOS 6.5下Samba服务器的安装与配置
CentOS 6.5 建立Samba服务器
用CentOS搭建文件服务器(Samba)
Samba 安装与配置,以及配置说明参数详解
samba配置参数详解

centOs6.5版Linux系统中搭建Samba服务(附搭建Samba设置及相关配置参考)相关推荐

  1. Linux系统下PXE装机服务的搭建与部署(附完整命令与截图)

    前言 在大规模安装服务器时,需要批量自动化方法来安装服务器,来减少日常的工作量. PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络 ...

  2. Linux系统中的日志服务管理

    目录 1.日志介绍 1.1 什么是日志 1.2 Linux系统使用的两种系统日志服务 1.3 ELK 2.rsyslog的管理 2.1 系统日志术语 1.2 实验 1.日志介绍 1.1 什么是日志 网 ...

  3. Linux系统中的FTP服务配置与管理

    目录 一.FTP协议 1.介绍 2.用处 3.FTP原理 4.FTP工作模式 (1)主动模式 (2)被动模式 5.FTP实现 (1)wuftpd (2)proftpd (3)vsftpd 二.FTP服 ...

  4. linux mysql 客户端连接,linux系统中启动mysql方式已经客户端如和连接mysql服务器

    零点间的记录 一.启动方式 1.使用linux命令service 启动: service mysqld start 2.使用 mysqld 脚本启动: /etc/inint.d/mysqld star ...

  5. linux管道命令详解,Linux系统中的管道命令的用法详解

    Linux系统中管道命令是linux系统的一个强大之处.下面由学习啦小编为大家整理了Linux系统中的管道命令的用法详解的相关知识,希望对大家有帮助! Linux系统中的管道命令的用法详解 管道命令操 ...

  6. Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库

    Linux系统中的软件管理详解(下) 5.软件仓库管理命令 a)dnf 命令: 管理软件仓库中的安装包 dnf repolist ##列出仓库信息clean all ##清除系统中已经加载的仓库缓存信 ...

  7. Linux系统中Java环境的搭建及JDK的安装(附上每一步操作截图及说明)【一看就懂】

    开门见山 第一步: 官网下载你所要使用的jdk版本:或本地已经存在的Linux系统的jdk压缩包.(这里以jdk1.8为例) 将此压缩包按如下图所示操作(1.进入/opt/文件 2.将压缩包拖入此处) ...

  8. vm虚拟机下linux安装python_VM中安装linux系统,安装VS Code,搭建Python环境

    VM中安装linux系统 在linux系统中安装VSCode(Visual Studio Code) 1.从官网下载安装包 2.在下载目录打开终端安装 sudo dpkg -i code_1.32.3 ...

  9. 理解Linux系统中的load average(图文版)转载

    理解Linux系统中的load average(图文版) 博客分类: Linux linux load nagios  一.什么是load average? linux系统中的Load对当前CPU工作 ...

最新文章

  1. centos7光盘修复 grub_CentOs7怎样修复MBR和GRUB?
  2. python 多进程 requests_python多进程(二)
  3. windows API(一)
  4. 52条实用经验,SQL优化不再难!
  5. Hadoop中RPC机制
  6. C#动态操作DataTable(新增行、列、查询行、列等)
  7. cassandra 学习笔记(2)
  8. 教你如何用 Linux Shell脚本判断IP是否合法(多种方法)
  9. POJ_2823 Sliding Window(单调队列)
  10. 戴尔linux恢复镜像,戴尔 SupportAssist OS Recovery 系统恢复教程
  11. 虚拟机的安装以及红帽子企业版5安装
  12. c语言阿基米德螺旋线编程,阿基米德螺旋线进刀凸轮外轮廓铣削的编程技巧
  13. 小学六年级计算机考试知识点总结,小学六年级数学毕业考试必备考点总结
  14. Java:Windows 10下载和配置JDK
  15. python定义字符串_Python定义字符串、循环
  16. PHP 获取浏览器以及版本号
  17. XSS(Cross Site Scripting)攻击简介
  18. 什么是AJAX四步?分别是?(AJAX的使用)
  19. [高频面试题]64匹马,8个赛道,找出跑得最快的4匹马
  20. 最新的虚拟机下载与安装

热门文章

  1. 全球AI技术开放日之走进美团 :探索美团外卖背后的AI大脑
  2. mysql 配置帐号并授权_mysql 设置用户并授权
  3. 两条平行线相交于一点
  4. 浅谈学生数学思维能力的培养
  5. 电离层对高分辨率星载SAR成像的影响4——电离层对方位向成像的影响
  6. java多线程霓虹灯,Android 霓虹灯
  7. 近20年最全目标检测综述
  8. 数据结构之图的应用(四)之关键路径
  9. 《华林科纳-半导体工艺》自动化超薄晶圆生产的处理
  10. 【Tool】保留labelImg的上一张标注信息