bilibili_Linux网络基础7_Samba服务

第七章 Samba服务

第一节 samba简介

数据共享的方法

Windows中最常用的是“网上邻居”。网上邻居使用的文件系统是CIFS(通用互联网文件系统)协议进行数据共享
Linux中最常用的是NFS服务

Samba的由来

  • 在 1991 年Andrew Tridgell为了实现Unix和Windows之间文件共享,开发了SMB( Server Message Block,服务消息块)文件系统
  • 由于SMB无法注册,就取名为Samba,热情的桑巴舞

Samba与NetBIOS协议

  • IBM开发的NetBIOS协议是为了局域网内少数计算机进行通信的协议
  • Samba基于NetBIOS协议开发,所以可以和Windows通信,但是只能在局域网通信
  • 相当于在Linux上搭建Windows的网上邻居,减少病毒传播

Samba主要应用

  • 文件共享
  • 打印服务器
  • Samba登陆时身份验证
  • 可以进行 Windows 的主机名解析

常见文件服务器的比较

服务名称 使用范围 服务器端 客户端 局限性
FTP 内网和公网 Windows、Linux Windows、Linux 无法直接在服务器端修改数据无法直接在服务器端修改数据
Samba 内网 Windows、Linux Windows、Linux 只能在内网使用
NFS 内网和公网 Linux Linux 只能Linux之间使用

第二节 Samba安装与端口

安装

  • samba: 主服务包
  • samba-client: 客户端
  • samba-common: 通用工具
  • samba4-libs: 库
  • samba-winbind: Windows域映射
  • samba-winbind-clients: 域映射客户端

samba的守护进程

  • smbd:提供对服务器中文件、打印资源的共享访问 139 445
  • nmbd:提供基于NetBIOS主机名称的解析 137 138

启动samba服务

  • service smb start
  • service nmb start

第三节 Samba相关文件

常用文件

  • /etc/samba/smb.conf #配置文件
  • /etc/samba/lmhosts #对应NetBOIS名与主机的IP的文件,一般samba会自动搜索(只对本机生效) IP 与 主机名对应
  • etc/samba/smbpasswd #samba密码保存文件,默认不存在
  • /etc/samba/smbusers #用户别名,用于适用不同操作系统中用户名习惯。需要配置文件中“username map”选项支持

常用命令

testparm 检测配置文件是否正确

第四节 Samba配置文件详解

配置文件结构 smb .conf

Global Settings

  • [global]: 全局设置

Share Definitions

  • [homes]: 用户目录共享设置
  • [printers]: 打印机共享设置
  • [myshare]:自定义名称的共享目录设置

Global Settings

  • workgroup:所在工作组名称(Windows)我的电脑里面有
  • server string:服务器描述信息
  • log file:日志文件位置
  • max log size:日志文件的最大容量
  • security:安全级别,可用值如下:
    • share: 不需要密码可以访问
    • user: 使用系统用户,samba密码登陆
    • server: 由其他服务器提供认证
    • domain: 由域控制器提供认证

Share Definitions

  • comment: 描述信息
  • path: 共享的路径
  • guest ok:允许所有人访问,等同于public
  • read only: 所有人只读
  • writable: 所有人可写
  • write list: 拥有写权限的用户列表
  • browseable: 是否浏览可见
  • valid users: 指定可以访问的用户

常见的变量

  • %v: samba的版本号
  • %S: 任意用户可以登陆
  • %m: client端的NetBIOS主机名
  • %L: 服务器端的NetBIOS主机名
  • %u: 当前登陆的用户名
  • %g: 当前登陆的用户组名

第五节 基本使用

第一讲 share权限访问

配置文件修改

[global]

  • workgroup = MYGROUP
  • server string = Samba Server Lamp
  • log file = /var/log/samba/log.%m
  • max log size = 50
  • security = share
  • passdb backend = tdbsam
    这里需要注意:samba4较之前的SAMBA 3有一个重大的变化是:security不再支持share,参数需要做调整
    原来:
    security=share
    现在:
    security=user
    map to guest =Bad User

Share Definitions

  • [movie]
    • comment = study material
    • path = /study
    • browseable = yes
    • writable = yes
    • guest ok = yes

建立共享目录

  • mkdir /study #建立共享目录
  • chown nobody /study/ #赋予用户访问权限
    映射为Linux中的nobody用户

测试配置文件命令

testparm

重启Samba服务

  • service smb restart
  • service nmb restart

第二讲 客户端的使用

Windows客户端访问

  • 网上邻居访问
    \192.168.44.4
  • Linux客户端访问
    • smbclient -L 192.168.44.4 #查看主机的共享资源
    • smbclient //192.168.44.4/movie #访问共享目录
    • 如果有密码:
      smbclient //192.168.44.4/movie -U 用户名
      即可访问

第三讲 user级别访问

配置文件修改
[global]

  • workgroup = MYGROUP
  • server string = Samba Server Lamp
  • log file = /var/log/samba/log.%m
  • max log size = 50
  • security = user
  • passdb backend = tdbsam

Share Definitions

  • [homes]
    • comment = Home Directories
    • browseable = no
    • writable = yes
  • [pub]
    • path = /public
    • browseable = no
    • writable = yes
    • write list = sc
    • valid users = sc 控制访问目录权限

建立共享目录与测试配置文件

  • mkdir /public
  • testparm
  • 重启Samba服务
    service smb restart
    service nmb restart
  • 添加Samba用户
    smbpasswd -a 系统用户名#注意,要给用户添加samba密码,该用户必须已经是系统用户

区别:

  • FTP:使用系统用户,系统密码登陆
  • Samba:使用系统用户,samba登陆
    权限设定

    如果要想访问与上传:
    • Linux系统权限需要允许
    • Samba服务权限也需要允许

第四讲 添加、删除、查看用户

添加samba用户

注意用户必须已经是系统用户,才能添加为samba用户

  • pdbedit -a -u 系统用户
  • 或 smbpasswd -a 系统用户名

删除samba用户

  • pdbedit -x -u 系统用户名
  • 或smbpasswd -x 系统用户

查看samba用户

  • pebedit -L

第六节 Samba访问实验

Samba共享目录权限

  • 系统权限要对共享目录生效
  • Samba服务器权限也会对共享目录生效
  • 在实际的工作中,可能的共享目录众多, 用户众多,权限交叉。建议使用系统权限控制共享目录权限,而不是使用samba权限

例子:
bilibili_Linux网络基础7_Samba服务
Samba共享目录

  • [教学]
    • path = /share/jiaoxue
    • browseable = yes
    • writable = yes
  • [教务]
    • path = /share/jiaowu
    • browseable = yes
    • writable = yes

Linux系统控制权限

  • chmod 700 /jiaoxue /jiaowu
    教学的权限
  • setfacl –m u:jx:rwx /share/jiaoxue
  • setfacl –m u:jw:rx /share/jiaoxue
  • setfacl –m u:xz:rx /share/jiaoxue
  • setfacl –m u:wl:rx /share/jiaoxue
    教务的权限
  • setfacl –m u:jw:rwx /share/jiaowu
  • setfacl –m u:jx:rwx /share/jiaowu
  • setfacl –m u:xz:rx /share/jiaowu
  • setfacl –m u:tg:rx /share/jiaowu

第七节 Samba其他使用

客户端挂载到本地使用

mount -t cifs -o username=用户 原路径 目标路径
例如:
mount -t cifs -o username=user1 //192.168.44.3/pub /test

开机自动挂载

vi /etc/fstab //192.168.44.3/pub /test cifs defaults,username=user1,password=456 1 2

Samba别名

Linux的用户如root、nobody在Windows中可能对应的用户是administrator、guest用户Samba是跨平台的,所以用别名让他们可以通用

别名文件

vi /etc/samba/smbusers
原名 = 别名 (多个别名 空格隔开) user1 = lamp1

配置文件中开启别名

vi /etc/samba/smb.conf
加入 username map = /etc/samba/smbusers
重启,就可以使用别名访问samba了

总结
Vsftp:

  • 内网 外网服务器: Windows Linux
  • 客户端: Windows Linux
  • 用户: 系统用户,系统密码
  • 缺点:不能直接在服务器上修改文件

Samba

  • 内网使用服务器: Windows Linux
  • 客户端: Windows Linux
  • 用户: 系统用户,samba密码
  • 缺点: 只能在内网使用
上一篇:2021年度全网最全Python学习路线


下一篇:RPA之家-Attended Automation