运维基本功(二十一): 文件共享服务之SAMBA

Posted 机智的小锐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运维基本功(二十一): 文件共享服务之SAMBA相关的知识,希望对你有一定的参考价值。

本文是在课程课件基础上修改的学习笔记
课程原地址:https://www.bilibili.com/video/BV1nW411L7xm
如有侵删
运维基本功(一):Linux系统安装
运维基本功(二):Linux基本命令
运维基本功(三):Linux文件管理
运维基本功(四):Linux文件管理-Vim编辑器概述
运维基本功(五):Linux文件管理-用户管理
运维基本功(六):Linux用户管理-远程管理
运维基本功(七):Linux的权限管理操作
运维基本功(八):Linux自有服务与软件包管理
运维基本功(九): Linux自有服务-防火墙&计划任务
运维基本功(十): Linux计划任务以及进程检测与控制
运维基本功(十一): LAMP项目部署实战
运维基本功(十二): Linux命令回顾与扩展
运维基本功(十三): 再谈用户组管理
运维基本功(十四):Linux下yum源配置实战
运维基本功(十五):Linux系统优化基础
运维基本功(十六):远程管理SSH服务
运维基本功(十七):远程管理SSH服务免密登录解决方案
运维基本功(十八): Linux系统下数据同步服务RSYNC解决方案
运维基本功(十九): 文件共享服务之FTP解决方案
运维基本功(二十): NFS任务解决方案
运维基本功(二十一): 文件共享服务之SAMBA

任务背景

搭建一个SAMBA服务,共享一个目录/samba/share,客户端使用user01/123
通过windows或者Linux可以在该目录里创建文件删除文件

知识储备

1、什么是SAMBA

Samba是用来实现SMB的一种软件,SMB(全称是Server Message Block)是一个协议名,它能被用于Web连接和客户端与服务器之间的信息沟通。Samba服务可用于将linux文件系统作为CIFS/SMB网络文件共享进行共享,并将linux打印机作为CIFS/SMB打印机共享进行共享。客户端主要是Windows;支持多节点同时挂载以及并发写入
主要用于windows和Linux下的文件共享、打印共享,实现匿名与本地用户文件共享

SAMBA也是一个C/S架构的软件,Client主要是Windows

2、主要进程

smbd进程控制发布共享目录与权限、负责文件传输 TCP 139 445
nmbd进程用于名称解析netbios UDP 137 138 ; 基于NETBIOS协议获得计算机名称——>解析为相应IP地址,实现信息通讯

NetBIOS:指用于局域网通信的一套API

3、smb配置文件

# vim /etc/samba/smb.conf
[global]  全局选项
	workgroup = MYGROUP                 定义samba服务器所在的工作组
	server string = Samba Server Version %v         smb服务的描述
	log file = /var/log/samba/log.%m            日志文件
	max log size = 50                   日志的最大大小KB  
	security = user             认证模式:share匿名|user用户密码|server外部服务器用户密码
	passdb backend = tdbsam         密码格式
	load printers = yes         加载打印机
	cups options = raw          打印机选项
[homes]                 局部选项(共享名称)
	comment = Home Directories      描述
	browseable = no      隐藏共享名称
	writable = yes      可读可写
[printers]      共享名称
	comment = All Printers       描述
	path = /var/spool/samba  本地的共享目录
	browseable = no  隐藏
	guest ok = no ——>   public = no  需要帐号和密码访问
	writable = no  ——>  read only =yes 不可写 
	printable = yes      打印选项
[share]
	path = /dir1
	guest ok = no
	writable = yes

任务解决方案

一、SAMBA服务器环境准备

四步走:

  1. 克隆
  2. 改名称和IP
  3. 关闭防火墙与SELinux
  4. 配置yum源

二、安装SAMBA软件

# yum install samba -y
# rpm -aq|grep  ^samba

三、查询SAMBA生成文件列表(rpm -ql)

# rpm -ql samba
/usr/sbin/smbd
/usr/sbin/nmbd

/usr/lib/systemd/system/smb.service
/usr/lib/systemd/system/nmb.service

四、在服务器端创建一个共享目录

# mkdir /samba/share -p

五、编辑/etc/smb.conf配置文件,实现SAMBA共享

# vim /etc/samba/smb.conf
...
[smb_share]
        comment = samba service
        path = /samba/share
        guest ok = no
        writable = yes
或者
[samba_share]
        path = /samba/share
        public = no
        writable = yes

备注:guest ok === public

六、创建一个user01用户,然后添加到samba认证中,设置密码为123

# useradd user01
# smbpasswd -a user01
New SMB password:123
Retype new SMB password:123
Added user user01.

以上操作完成后,则SAMBA系统中增加了一个user01的账号以及123的密码

七、启动nmb与smb服务

# systemctl start nmb
# systemctl start smb

八、基于Windows或Linux实现文件共享

Windows:

① 首先安装SAMBA支持Windows + X,选择控制面板

在这里插入图片描述

② 找到Windows功能选项

在这里插入图片描述

③ 安装SAMBA功能(客户端)

在这里插入图片描述

④ 进入计算机(我的电脑),找到映射网络驱动器

在这里插入图片描述

设置SAMBA服务器的地址信息:

在这里插入图片描述

10.1.1.10 => Linux服务器的IP地址

smb_share => SAMBA标签

挂载完成后,目录不可写?答:主要原因在于/samba/share目录没有写入权限

# setfacl -m u:user01:rwx /samba/share

九、基于Linux或Linux实现文件共享

# smbclient -L 10.1.1.10 -U user01

使用smbclient查看目录信息

# smbclient //10.1.1.10/smb_share -U user01

把SAMBA挂载到Linux系统(类似NFS)

# mkdir /u01
# mount.cifs -o user=user01,pass=123 //10.1.1.10/smb_share /u01

访问控制说明:

控制读写权限
	writable = yes/no
	readonly = yes/no

如果资源可写,但只允许某些用户可写,其他都是只读
write list = admin, root, @staff(用户组)
read list = mary, @students

控制访问对象
	valid users = tom,mary,@itcast
	invalid users = tom
注意:以上两个选项只能存在其中一个

网络访问控制:
hosts deny = 192.168.0.   拒绝某个网段
hosts allow = 192.168.0.254  允许某个IP
hosts deny = all  拒绝所有
hosts allow = 192.168.0. EXCEPT 192.168.0.254  允许某个网段,但拒绝某个单个IP
注意:deny和allow同时存在,allow优先

总结

  1. ftp 局域网和外网都可以
  2. nfs 局域网 挂载方式访问 mount.nfs 侧重于Linux与Linux之间
  3. samba 局域网 直接访问(smbclinet)挂载的方式mount.cifs 侧重于Windows与Linux之间

以上是关于运维基本功(二十一): 文件共享服务之SAMBA的主要内容,如果未能解决你的问题,请参考以下文章

linux架构学习第二十九天之samba文件共享服务

Linux系统学习 二十SAMBA服务—介绍安装端口

运维学习之cifs(Samba)文件系统服务

Linux运维之道之ENGINEER1.3(配置SMB共享,配置NFS共享)

全面分析RHCE7(红帽认证工程师)考试题目之 ----Samba文件共享篇

Linux运维学习之多用户SAMBA挂载