Linux之Samba部署

时间:2022-04-13 09:18:04

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 逻辑拓扑图

Linux之Samba部署

3.2 环境准备

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

Linux之Samba部署

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

Linux之Samba部署

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

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

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

Linux之Samba部署

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

Linux之Samba部署

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

Linux之Samba部署

3.3 配置Samba服务

1. 安装samba服务

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

Linux之Samba部署

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

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

Linux之Samba部署

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

[root@samba-server ~]# useradd chenjf

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

Linux之Samba部署

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

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

Linux之Samba部署

Linux之Samba部署

5. 重启服务

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

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

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

Linux之Samba部署

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

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

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

Linux之Samba部署

3.4 客户端访问

3.4.1 Windows资源管理器访问

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

Linux之Samba部署

2. 输入账户名密码

Linux之Samba部署

3. 进入samba共享目录

Linux之Samba部署

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

Linux之Samba部署

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

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

Linux之Samba部署

2. 点击映射网络驱动器

Linux之Samba部署

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

Linux之Samba部署

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

Linux之Samba部署

3.4.3 Linux临时挂载访问

1. 安装samba客户端软件

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

Linux之Samba部署

2. 创建一个挂载目录

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

Linux之Samba部署

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

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

Linux之Samba部署

4. 挂载访问

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

Linux之Samba部署

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

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

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

username=chenjf

password=vancen

domain=vacnen

Linux之Samba部署

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

Linux之Samba部署

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

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

Linux之Samba部署

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

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

[root@samba-client share]# touch happy

Linux之Samba部署

3.4.4  Linux自动挂载访问

1. 安装samba客户端软件

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

Linux之Samba部署

2. 创建挂载点/mnt/share

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

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

Linux之Samba部署

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

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

Linux之Samba部署

2. 挂载所有设备

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

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

Linux之Samba部署

方法二、已配置文件验证

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

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

username=chenjf

password=vancen

domain=vacnen

Linux之Samba部署

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

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

Linux之Samba部署

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

Linux之Samba部署

4. 挂载所有设备

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

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

Linux之Samba部署

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

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

[root@samba-client share]# mkdir share

[root@samba-client share]# ls

Linux之Samba部署

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

Linux之Samba部署

此处使用脚本创建也可以

2. 创建挂载目录

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

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

Linux之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/

Linux之Samba部署

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

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

Linux之Samba部署

5. 使⽤testparm测试

[root@samba-server ~]# testparm

Linux之Samba部署

注意: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

Linux之Samba部署

7. 重启samba服务

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

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

Linux之Samba部署

4.3 客户端验证

1. 安装客户端软件

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

Linux之Samba部署

2. 使用smbclient查看共享资源

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

Linux之Samba部署

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

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

Linux之Samba部署

4. 创建一个目录chenjf1

smb: \> mkdir chenjf1

Linux之Samba部署

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

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

Linux之Samba部署

6. 创建一个目录chenjf2

smb: \> mkdir chenjf2

Linux之Samba部署

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

Linux之Samba部署

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

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

Linux之Samba部署

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

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

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

Linux之Samba部署

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

Linux之Samba部署

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

11. 查看目录信息

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

Linux之Samba部署

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

Linux之Samba部署

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

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

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

Linux之Samba部署

14. 查看挂载目录

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

Linux之Samba部署

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脚本&lpar;Tomcat&sol;jetty&rpar;

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

  8. Django Linux环境下部署CentOS7&plus;Python3&plus;Django&plus;uWSGI&plus;Nginx&lpar;含Nginx返回400问题处理、防火墙管理&rpar;

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

  9. linux下安装部署ansible

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

随机推荐

  1. JS中的split

    个人理解spilt函数是javascript中字符串和正则表达式的一个联合应用.功能是根据指定的正则表达式(如果是字符串的话也会转为正则表达式)对字符串进行分割.返回值是一个被分割后的字符串数组. 最 ...

  2. (转)ASP&period;NET&lpar;C&num;&rpar; 读取EXCEL ——另加解决日期问题

    使用OLEDB可以对excel文件进行读取,我们只要把该excel文件作为数据源即可. 一 在D盘创建excel文件test.xls: 二 将工作表Sheet1的内容读取到DataSet string ...

  3. XML基础概念

    XML基础概念 一.什么是XML. 可扩展标记语言(EXtensible Markup Language),标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言. 二.XML特点 1 ...

  4. char nvarchar varchar

    1. char      固定长度,最长n个字符.   2. varchar      最大长度为n的可变字符串. (n为某一整数,不同数据库,最大长度n不同)   char和varchar区别:   ...

  5. asp&period;net 获取当前url地址

    设当前页完整地址是:http://www.jb51.net/aaa/bbb.aspx?id=5&name=kelli "http://"是协议名 "www.jb5 ...

  6. uwp版的音乐播放器练手

    UWP项目之音乐播放器 这个项目本来是我女朋友的一个小作业,她做不出来,结果只能是我来代劳.经过几天的时间虽然赶出来了,但是自己不是很满意,还有很多不满意的地方,因此决定在最近的一段时间内,重新完成. ...

  7. 用SpringCloud进行微服务架构演进

    在<架构师必须要知道的阿里的中台战略与微服务> 中已经阐明选择SpringCloud进行微服务架构实现中台战略,因此下面介绍SpringCloud的一些内容,SpringCloud已经出来 ...

  8. lr介绍

    ---恢复内容开始--- loadrunner是通过agent进程来监控各种协议的客户端和服务端的通信: init和end不能进行迭代,action才能迭代(参数化才有作用) init(比如说有50个 ...

  9. SD从零开始71 业务信息仓库&lpar;BW&rpar;

    SD从零开始71 业务信息仓库(BW)概念 在线事务处理的环境OLTP Environment 在事务处理中,我们不断地填充用于跟踪我们的业务流程的数千个不同步骤的特定的表: 例如,销售凭证行条目来自 ...

  10. ios开发之--CAKeyframeAnimation的详细用法

    简单的创建一个带路径的动画效果,比较粗糙,不过事先原理都是一样的, 代码如下: 1,创建动画所需的view -(void)creatView { moveView = [UIView new]; mo ...