1、Samba介绍

Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件,由服务器及客户端程序构成,SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

SMB 协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、 打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得 Samba 不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

2、Samba配置文件介绍

筛选Samba注释配置⽂件

[root@samba-server ~]# grep -v '^#|^$' /etc/samba/smb.conf

[global]                                                                 //全局参数

workgroup = SAMB                      //⼯作组名称

hosts allow = 192.168.56.        //表示允许IP或⽹段,允许使⽤通配符或主机名

interfaces = eth0                    //SambaServer监听⽹卡, 也可以写IP地址

max connections = 0              //最⼤连接数⽬, 超出拒绝, 0表示不限制

max log size = 50                   //定义⽇志⽂件的最⼤容量为50KB

security = user                      //安全验证⽅式,总共有4种

//share:⽆需验证身份, 简单⽅便, 安全性差

//user:需要验证⽤户密码才可访问, 安全性⾼

//server:需要通过三⽅服务验证账号密码, (集中管理账户)

//domain: 使⽤域控制器进⾏身份验证

passdb backend = tdbsam           //定义⽤户密码的类型,共有3种

//smbpasswd:为系统⽤户设置Samba服务程序的密码

//tdbsam:创建数据库⽂件并使⽤pdbedit命令建⽴Samba服务程序的⽤户

//ldapsam: 基于LDAP服务进⾏账户验证

printing = cups                 //设置Samba共享打印机的类型(bsd, sysv, plp, lprng, aix, hpux, qnx)

printcap name = cups          //设置共享打印机的配置⽂件

load printers = yes              //设置在Samba服务启动时是否共享打印机设备

cups options = raw              //打印机的选项

为了更⽅便查阅共享重要参数的功能,共享参数如下:

[共享名/访问名]

comment = 任意字符串

path = 共享⽬录路径

browseable = 指定该共享是否可以浏览

writable = 指定该共享路径是否可写

valid users = 允许访问该共享的⽤户

invalid users = 禁⽌访问该共享的⽤户

write list = 允许写⼊该共享的⽤户

guest ok = 指定该共享是否允许guest账户访问

3、Samba单用户访问配置

3.1 逻辑拓扑图

3.2 环境准备

[root@samba-server ~]# cat /etc/redhat-release #查看系统版本

[root@samba-server ~]# uname -r #查看内核版本

[root@samba-server ~]# systemctl stop ebtables             #关闭ebtables防火墙

[root@samba-server ~]#systemctl disable ebtables           #重启不启动ebtables防火墙

[root@samba-server ~]# systemctl status ebtables          #查看ebtables状态

[root@samba-server ~]# ifconfig ens33|awk -F '[ :]+' 'NR==2{print $3}'        #查看IP地址

[root@samba-server ~]# hostname #查看主机名


3.3 配置Samba服务

1. 安装samba服务

[root@samba-server ~]# yum -y install samba

2. 创建⽤于共享资源的⽂件⽬录

[root@samba-server ~]# mkdir -p /data/samba/share

3. 创建系统账户,并设置samba密码

[root@samba-server ~]# useradd chenjf

[root@samba-server ~]# smbpasswd -a chenjf

4. 修改配置文件,修改工作组模式,创建共享

[root@samba-server ~]# vim /etc/samba/smb.conf

5. 重启服务

[root@samba-server ~]# systemctl restart smb

[root@samba-server ~]# systemctl enable smb

[root@samba-server ~]# systemctl status smb

6. 如果非得开启firewall防火墙就使用一下命令开启

[root@samba-server ~]# firewall-cmd --add-service=samba --permanent

[root@samba-server ~]# firewall-cmd –reload


3.4 客户端访问

3.4.1 Windows资源管理器访问

1. 打开运行在运行界面输入“\\samba-server IP”

2. 输入账户名密码

3. 进入samba共享目录

4. 在share下创建一个文件test


3.4.2  Windows 映射到磁盘驱动器访问

1. 打开资源管理器,点击计算机

2. 点击映射网络驱动器

3. 打开资源管理器就可以看到这个网络驱动器

4. 点击进入到网络驱动器,在其中创建一个目录“chenjf”。


3.4.3 Linux临时挂载访问

1. 安装samba客户端软件

[root@samba-client ~]# yum -y install samba-client cifs-utils

2. 创建一个挂载目录

[root@samba-client ~]# mkdir /share

3. 临时查看 SMB 服务端共享资源

[root@samba-client ~]# smbclient -L 192.168.1.242 -U chenjf

4. 挂载访问

[root@samba-client ~]# mount -t cifs -o rw,user=chenjf,pass=vancen //192.168.1.242/share /share

也可以将登陆账户密码保存⾄配置⽂件,可以免输⼊密码去访问挂载

5. 创建相应⽂件, 并赋予安全权限

[root@samba-client ~]# vim /etc/samba/chenjf

username=chenjf

password=vancen

domain=vacnen

[root@samba-client ~]# chmod 600 /etc/samba/chenjf

6. 挂载时执⾏⽤户密码⽂件credentials=/etc/samba/chenjf

[root@samba-client ~]# mount -t cifs -o rw,credentials=/etc/samba/chenjf   //192.168.1.242/share   /share/

7. 进入挂载目录创建一个文件

[root@samba-client ~]# cd /share/

[root@samba-client share]# touch happy


3.4.4  Linux自动挂载访问

1. 安装samba客户端软件

[root@samba-client ~]# yum -y install samba-client cifs-utils

2. 创建挂载点/mnt/share

[root@samba-client ~]# mkdir /mnt/share

[root@samba-client ~]# ls /mnt/

方法一、直接用户密码验证

1. 编写/etc/fstab配置文件使用用户密码挂载

[root@samba-client ~]# vim /etc/fstab

//192.168.1.242/share       /mnt/share      cifs      defaults,rw,user=chenjf,pass=vancen    0     0

2. 挂载所有设备

[root@samba-client ~]# mount -a

[root@samba-client ~]# df -h

方法二、已配置文件验证

1. 编辑验证密码配置文件

[root@samba-client ~]# vim /etc/samba/chenjf

username=chenjf

password=vancen

domain=vacnen

2. 修改验证密码的配置文件的权限

[root@samba-client ~]# chmod 600 /etc/samba/chenjf

3. 编辑/etc/fstab/配置文件使用密码配置文件

[root@samba-client ~]# vim /etc/fstab

//192.168.1.242/share /mnt/share cifs defaults,rw credentials=/etc/samba/chenjf 0 0

4. 挂载所有设备

[root@samba-client ~]# mount -a

[root@samba-client ~]# df –h

5. 进入挂载点,创建一个目录

[root@samba-client ~]# cd /mnt/share/

[root@samba-client share]# mkdir share

[root@samba-client share]# ls


4、Samba多用户访问配置

在 Samba Server 服务器上, 共享 /data/samba/public ,实现对访问挂载后的共享的每个⽤户单独的验证,实现权限隔离。允许chenjf1能够读写,允许chenjf2 能够读,允许chenjf3不能访问

4.1 环境准备

基于samba单用户的配置环境

4.2 配置Samba多用户

1. 创建用户并给用户设置samba密码

[root@samba-server ~]# useradd chenjf1

[root@samba-server ~]# useradd chenjf2

[root@samba-server ~]# useradd chenjf3

[root@samba-server ~]# smbpasswd -a chenjf1

[root@samba-server ~]# smbpasswd -a chenjf2

[root@samba-server ~]# smbpasswd -a chenjf3

此处使用脚本创建也可以

2. 创建挂载目录

[root@samba-server ~]# mkdir /data/samba/public

[root@samba-server ~]# ls /data/samba/

3. 给用户设置相应的权限

[root@samba-server ~]# setfacl -m u:chenjf1:rwx /data/samba/public/

[root@samba-server ~]# setfacl -m u:chenjf2:r-- /data/samba/public/

[root@samba-server ~]# setfacl -m u:chenjf3:--- /data/samba/public/

[root@samba-server ~]# getfacl /data/samba/public/

4. 编辑samba主配置文件,共享/data/samba/public

[root@samba-server ~]# vim /etc/samba/smb.conf

5. 使⽤testparm测试

[root@samba-server ~]# testparm

注意:testparm命令报错:rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)

解决思路:把用户文件描述符的数量设置的比默认值高一些

6. 修改testparm属性,

1、临时修改

[root@samba-server ~]# ulimit -n 16384

2、永久修改

[root@samba-server ~]# echo "root - nofile 16384" >>/etc/security/limits.conf

7. 重启samba服务

[root@samba-server ~]# systemctl restart smb nmb

[root@samba-server ~]# systemctl enable smb nmb


4.3 客户端验证

1. 安装客户端软件

[root@samba-client ~]# yum -y install samba-client cifs-utils

2. 使用smbclient查看共享资源

[root@samba-client ~]# smbclient -L 192.168.1.242

3. 使用smbclient命令登陆用chenjf1验证连接

[root@samba-client ~]# smbclient -U chenjf1 //192.168.1.242/public

4. 创建一个目录chenjf1

smb: \> mkdir chenjf1

5. 使用smbclient命令登陆用chenjf2验证连接

[root@samba-client ~]# smbclient -U chenjf2 //192.168.1.242/public

6. 创建一个目录chenjf2

smb: \> mkdir chenjf2

7. 在chenjf2上查看public内的共享

8. 使用smbclient命令登陆用chenjf3验证连接

[root@samba-client ~]# smbclient -U chenjf3 //192.168.1.242/public

9. 在/mnt/创建chenjf1,chenjf2,chenjf3

[root@samba-client ~]# mkdir /mnt/chenjf{1,2,3}

[root@samba-client ~]# ls /mnt/

10. 使用mount挂载访问测试

[root@samba-client ~]# mount -t cifs -o username=chenjf1,pass=vancen //192.168.1.242/public /mnt/chenjf1

[root@samba-client ~]# mount -t cifs -o username=chenjf2,pass=vancen //192.168.1.242/public /mnt/chenjf2

[root@samba-client ~]# mount -t cifs -o username=chenjf3,pass=vancen //192.168.1.242/public /mnt/chenjf3

总结:chenjf1对共享的public目录能够读写,chenjf2对共享的public目录能够读,chenjf3对共享的public目录不能访问

11. 查看目录信息

[root@samba-client ~]# df –h

12. 开机自动挂载方式,编写/etc/fstab配置文件

[root@samba-client ~]# vim /etc/fstab

//192.168.1.242/public /mnt/chenjf2 cifs defaults,rw,user=chenjf1,pass=vancen,_netdev 0 0

//192.168.1.242/public /mnt/chenjf2 cifs defaults,rw,user=chenjf2,pass=vancen,_netdev 0 0

注释:挂载属性 “_netdev”代表网络设备,网络联通后才挂载此设备

13. 使用mount -a命令全部挂载

[root@samba-client ~]# mount –a

14. 查看挂载目录

[root@samba-client ~]# df -h

Linux之Samba部署的更多相关文章

  1. Linux下安装部署Samba共享盘的操作手册

    简述 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的 ...

  2. Linux下samba的安装与配置

    背景          在window7下面虚拟了一个CentOS6.3,为了学习命令行就没有装图形包,所以我的CentOS是黑屏的那种,呵呵,当然了,VMWare提供 的增强功能我就不能用了(或许能 ...

  3. SPARK在linux中的部署,以及SPARK中聚类算法的使用

    眼下,SPARK在大数据处理领域十分流行.尤其是对于大规模数据集上的机器学习算法.SPARK更具有优势.一下初步介绍SPARK在linux中的部署与使用,以及当中聚类算法的实现. 在官网http:// ...

  4. Node.js~在linux上的部署~pm2管理工具的使用

    之前写了两篇关于在linux上部署nodejs的文章,大家如果没有基础可以先看前两篇<Node.js~在linux上的部署>,<Node.js~在linux上的部署~外网不能访问no ...

  5. Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包

    Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包 >>>>>>>>>>>& ...

  6. Linux项目自动部署

    场景:linux中自动部署项目在工作中经常遇到,快速高效的部署项目能够大幅提高工作效率.现在将项目部署的过程记录下来,以供参考,其中用到的知识点现在还有很多不很清楚,后面要好好琢磨琢磨! 1 项目部署 ...

  7. linux服务器批量部署应用系统shell脚本(Tomcat/jetty)

    linux服务器批量部署应用系统shell脚本: 1.请更换代码内的服务器地址(Tomcat或jetty服务器) serverRoot=/home/undoner/java_tool/apache-t ...

  8. Django Linux环境下部署CentOS7+Python3+Django+uWSGI+Nginx(含Nginx返回400问题处理、防火墙管理)

    本文将介绍如何在Linux系统上部署Django web项目,本次部署基于下面的架构: CentOS7+ Python3.5 + Django1.11 + uWSGI + Nginx 亲测可行!!按照 ...

  9. linux下安装部署ansible

    linux下安装部署ansible 介绍 Ansible是一种批量部署工具,现在运维人员用的最多的三种开源集中化管理工具有:puppet,saltstack,ansible,各有各的优缺点,其中sal ...

随机推荐

  1. qt 拖拽 修改大小(二)

    最近项目需要实现windows下橡皮筋的效果,所以对此做了一些了解,特此记录. 首先windows系统是支持橡皮筋效果的,需要使用win32方 法:SystemParametersInfo(SPI_S ...

  2. 从零开始学习PYTHON3讲义(五)while循环和棋盘麦粒问题

    <从零开始PYTHON3>第五讲 ​上一节课重点学习了字符串,并且传递了一个重要的理念,就是程序要对开发人员自己和用户都足够友好.在这个过程中,利用字符串给出充分.完整.准确的提示是非常重 ...

  3. SpringBoot入门教程(四)MyBatis generator 注解方式和xml方式

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML ...

  4. Linux下 Vim(Vi)编辑器的使用

    vi编辑器 vi是UNIX和类UNIX环境下的可用于创建文件的屏幕编辑器.vi有两种工作模式:命令模式和文本输入模式.启动vi需要输入vi,按[Spacebar]键并输入文件名后回车. 切换模式键 v ...

  5. MaxCompute安全管理指南-基础篇

    背景及目的 方便和辅助MaxCompute的project owner或安全管理员进行project的日常安全运维,保障数据安全. MaxCompute有安全模型,DataWorks也有安全模型,当通 ...

  6. 痞子衡嵌入式:飞思卡尔i.MX RT系列MCU启动那些事(9)- 从Parallel NOR启动

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的Parallel NOR启动. 上一篇讲i.MXRT从Raw NAND启动的文章 从Raw NAND启 ...

  7. Select默认选择后台参数

    之前写过一个这样的方法,后来需求开发中,发现了方法的BUG,然后我又重新找了一种方法,今天来记录一下. 先声明前台 <select name="type" class=&qu ...

  8. 【Zabbix】Zabbix-agent自动化脚本

    zabbix-agent自动化脚本 作用:批量部署zabbix-agent.用于上百台虚拟机都可以被Zabbix监控. 脚本名:inst-agent.sh #!/bin/bash echo " ...

  9. ioc初步理解(一) 简单实用autofac搭建mvc三层+ioc(codeFirst)

    1]首先搭好框架 1.1]搭建ui层 1.2]创建其他内库文件 整个项目基本部分搭建完毕之后如下 2]使用nuget引用文件 先在每一个项目中引入ef 然后再UI层引入以下两个文件autofac和Au ...

  10. C# 如何添加Excel页眉页脚(图片、文字、奇偶页不同)

    简介 我们可以通过代码编程来对Excel工作表实现很多操作,在下面的示例中,将介绍如何来添加Excel页眉.页脚.在页眉处,我们可以添加文字,如公司名称.页码.工作表名.日期等,也可以添加图片,如LO ...