文章目录

  • 一、SAMBA概念
    • 1. 什么是SAMBA
    • 2. SAMBA主要进程
    • 3. SAMBA软件安装(服务器搭建)
    • 4. smb配置文件
  • 二、SAMBA使用案例
    • 1. 环境准备
      • 1)配置静态ip
      • 2)关闭防火墙和SELinux
      • 3)安装SAMBA
      • 4)在服务端创建一个共享目录并创建文件
    • 2. 修改配置文件
    • 3. 创建用户
    • 4. 启动nmb和smb服务
    • 5. 测试基于Windows实现文件共享
      • 解决挂载后目录不可写
    • 6. 基于Linux或Linux实现文件共享
      • 把SAMBA挂载到Linux系统(类似NFS)
  • 三、FTP、NFS、SAMBA的区别

一、SAMBA概念

1. 什么是SAMBA

SMB(Server Message Block)协议实现文件共享,也称为CIFS(Common Internet File System )
是Windows和类Unix系统之间共享文件的一种协议

  • 客户端主要是Windows,支持多节点同时挂载以及并发写入
  • 主要用于Windows和Linux下的文件共享、打印共享
  • 实现匿名与本地文件共享
  • SAMBA也是一个C/S架构的软件,Client主要是Windows

2. SAMBA主要进程

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

NetBIOS是Network Basic Input/Output System(网络基本输入/输出系统)的简称,一般指用于局域网通信的一套API

3. SAMBA软件安装(服务器搭建)

命令:yum -y install samba -y

查看相关软件包

[root@samba ~]# rpm -qa | grep ^samba
samba-common-libs-4.10.16-19.el7_9.x86_64
samba-common-tools-4.10.16-19.el7_9.x86_64
samba-common-4.10.16-19.el7_9.noarch
samba-client-libs-4.10.16-19.el7_9.x86_64
samba-libs-4.10.16-19.el7_9.x86_64
samba-4.10.16-19.el7_9.x86_64
[root@samba ~]#

4. smb配置文件

通过命令:vim /etc/samba/smb.conf查看配置文件

[global] 全局选项workgroup = SAMBA  定义samba服务器所在的工作组security = user    认证模式:share匿名|user用户密码|server外部服务器用户密码passdb backend = tdbsam    密码格式load printers = yes    加载打印机cups options = raw    打印机选项[homes]    局部选项(共享名称)comment = Home Directories 描述valid users = %S, %D%w%S 有效用户browseable = No    隐藏共享名称read only = No   是否只读inherit acls = Yes 继承ACLwritable = yes      可读可写[printers]    共享名称comment = All Printers 描述path = /var/tmp  本地的共享目录printable = Yes 可打印guest ok = no ——>(等价于)   public = no  需要帐号和密码访问writable = no  ——>(等价于)  read only =yes 不可写 browseable = No    隐藏[print$]comment = Printer Driverspath = /var/lib/samba/driverswrite list = @printadmin rootforce group = @printadmincreate mask = 0664directory mask = 0775

二、SAMBA使用案例

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

1. 环境准备

1)配置静态ip

命令:vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE="Ethernet"
BOOTPROTO="static"
IPADDR=192.168.44.170
NETMASK=255.255.255.0
GATEWAY=192.168.44.2
DNS1=8.8.8.8
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"

2)关闭防火墙和SELinux

关闭防火墙:
命令:systemctl stop firewalld
开机不自启:systemctl disable firewalld

关闭SELinux:
命令:setenforce 0
开机不自启
vim /etc/selinux/config

SELINUX=disabled

3)安装SAMBA

命令:yum -y install samba -y

查看SAMBA生成文件列表
命令:rpm -ql samba

4)在服务端创建一个共享目录并创建文件

命令:mkdir -p /samba/share

[root@samba share]# touch /samba/share/test.txt
[root@samba share]# echo "hello word" >> test.txt
[root@samba share]# ll
total 4
-rw-r--r--. 1 root root 11 Jul 18 16:18 test.txt
[root@samba share]#

2. 修改配置文件

命令:vim /etc/samba/smb.conf

[samba_share]    共享名称comment = samba service 描述path = /samba/share 本地的共享目录guest ok = no   需要帐号和密码访问writable = yes    可读可写

或者可以修改成
因为 guest ok = no 等价于 public = no

[samba_share]path = /samba/sharepublic = nowritable = yes

3. 创建用户

创建一个test用户,然后添加到samba认证中,设置密码为123456

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

4. 启动nmb和smb服务

命令:systemctl start nmb
systemctl start smb

5. 测试基于Windows实现文件共享

打开控制面板:


点击程序



进入计算机


192.168.44.170(主机ip)
samba_share(SAMBA配置文件的标签名)

输入刚创建并加入到SAMBA数据库中的用户名和密密码

最后看到之前创建的共享目录里的文件

解决挂载后目录不可写


问题:主要原因在于/samba/share目录没有写入权限
解决方案:
给用户添加写权限,或者用ACL单独给刚刚创建的test用户添加权限
命令:setfacl -m u:test:rwx /samba/share

6. 基于Linux或Linux实现文件共享

注意:samb_share参数是配置文件里标签名
现在LInux上安装SAMBA客户端
命令:yum -y install samba-client

命令:smbclient -L 192.168.44.170 -U test

[root@samba ~]# smbclient -L 192.168.44.170 -U test
Enter SAMBA\test's password: Sharename       Type      Comment---------       ----      -------print$          Disk      Printer Driverssamba_share     Disk      samba serviceIPC$            IPC       IPC Service (Samba 4.10.16)test            Disk      Home Directories
Reconnecting with SMB1 for workgroup listing.Server               Comment---------            -------SAMBA                Samba 4.10.16Workgroup            Master---------            -------SAMBA                SAMBA
[root@samba ~]# 

使用smbclient查看目录信息

命令:smbclient //192.168.44.170/samba_share -U test

通过help命令查看命令使用和NFS类似

smb: \> help
?              allinfo        altname        archive        backup
blocksize      cancel         case_sensitive cd             chmod
chown          close          del            deltree        dir
du             echo           exit           get            getfacl
geteas         hardlink       help           history        iosize
lcd            link           lock           lowercase      ls
l              mask           md             mget           mkdir
more           mput           newer          notify         open
posix          posix_encrypt  posix_open     posix_mkdir    posix_rmdir
posix_unlink   posix_whoami   print          prompt         put
pwd            q              queue          quit           readlink
rd             recurse        reget          rename         reput
rm             rmdir          showacls       setea          setmode
scopy          stat           symlink        tar            tarmode
timeout        translate      unlock         volume         vuid
wdel           logon          listconnect    showconnect    tcon
tdis           tid            utimes         logoff         ..
!
smb: \>

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

先创建一个目录用来挂载:mkdir /temp

安装cifs:yum install cifs-utils -y

挂载命令:mount.cifs -o user=test,pass=123456 //192.168.44.170/samba_share /temp


访问权限

控制读写权限writable = yes/noreadonly = yes/no如果资源可写,但只允许某些用户可写,其他都是只读
write list = admin, root, @staff(用户组)
read list = mary, @students控制访问对象valid users = tom,mary,@itcastinvalid 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优先

三、FTP、NFS、SAMBA的区别

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

Linux——SAMBA文件共享相关推荐

  1. linux samba文件共享,网络凭据总是出错解决方法

    linux中创建一以 samba用户即可 输入这个命令 语法 smbpasswd [选项] username -a 添加用户到samba服务器 -c 指定配置文件smb.conf的位置 -x 删除用户 ...

  2. linux共享文件权限设置,linux – Windows更改Samba文件共享中的文件权限

    我安装了一个外部USB驱动器,用于CentOS上的文件共享.所有客户端访问共享都是Windows XP或7.在Windows中,我使用"用户帐户"中的"管理您的凭据&qu ...

  3. samba实现linux之间文件共享,使用 samba 实现文件共享

    Samba简述: SMB(Server Messages Block)协议:实现局域网内文件或打印机等资源共享服务的协议. Samba服务程序是一款基于SMB协议并由服务端和客户端组成的开源文件共享软 ...

  4. linux和win10文件共享smb,Windows 10 Samba文件共享的设置方法,解决不能访问和密码错误的问题...

    Samba文件共享有什么用? Samba是SMB文件共享协议的应用软件,SMB虽然不是最高效的共享方式,但却是使用最为广泛的,Linux平台(包括手机.平板.MAC)和Windows平台都支持它. 使 ...

  5. [Samba] Linux(Centos)samba服务安装,Samba文件共享及Samba配置详解

    本片博客主要介绍了[Samba] Linux(Centos)samba文服务器安装案例,samba共享,samba服务,samba配置详解及网页配置samba工具samba-swat 的使用方法等. ...

  6. ubuntu 20.04搭建samba文件共享服务器,实现基于Linux和Windows的共享文件服务

    ubuntu 20.04搭建samba文件共享服务器,实现基于Linux和Windows的共享文件服务--超详细 一,samba的基本概念 二,samba的安装 三,samba的基本配置 创建文件夹 ...

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

    samba 文件共享(共享文件夹) 完成了windows和linux的文件共享 配置SMB共享 Samba软件项目 用途:为客户机提供共享使用的文件夹 协议:SMB(TCP 139),CIFS(TCP ...

  8. RHCE7 试题 linux 公社,全面分析RHCE7(红帽认证工程师)考试题目之 ----Samba文件共享篇(示例代码)...

    samba 文件共享(共享文件夹) 完成了windows和linux的文件共享 配置SMB共享 Samba软件项目 用途:为客户机提供共享使用的文件夹 协议:SMB(TCP 139),CIFS(TCP ...

  9. 搭建samba文件共享服务

    文章目录 搭建samba文件共享服务 前言 搭建及设置步骤 实验环境 Win10文件共享到Linux里面 首先创建一个共享目录 GUEST账户启用 打开本地策略 将用户权限分配里面的拒绝从网络访问这台 ...

最新文章

  1. python网络爬虫 - 如何伪装逃过反爬虫程序
  2. 皮一皮:当你和朋友只打算玩一盘游戏放松时...
  3. 通过MATLAB将数据转化为mif文件,供Quartusii软件的ROM核读取调用
  4. 什么是PROTAC技术?
  5. ajax传递json数组php,怎么通过ajax传送json数组到php,并通过php将数据插入数据库
  6. helm添加仓库命令:helm repo add带用户名密码
  7. RHEL5.8配置开机自动挂载磁盘
  8. WinForm部署问题
  9. SQLSERVER 清除链接历史记录
  10. Android studio 无法启动安卓模拟器
  11. 三、Oracle学习笔记:DDL数据定义语句
  12. linux 内核 介绍,Linux内核详细介绍
  13. phpwind升级php7,phpwind-8.7-GBK升级到phpwind-9.02-utf8步骤详解
  14. 没有学历可以学计算机编程吗,学电脑编程要什么学历?
  15. Win11更新补丁导致应用程序崩溃错误代码0xc0000135怎么解决?
  16. 磁力云盒,自动静默关注店铺
  17. 使用print时出错 SyntaxError: Missing parentheses in call to ‘print‘ Did you mean print(““)
  18. Jweb-Servlet 知识点+代码实操
  19. JAVA日记之mybatis-2代理开发/动态sql/sql抽取/核心配置标签 ----喝最烈的酒.
  20. Android传感器常见显示程序

热门文章

  1. 概念模型,逻辑模型,物理模型
  2. 为什么将机器学习应用于资产定价?
  3. 【渝粤题库】广东开放大学 工程经济 形成性考核
  4. 安全浏览器无法安装?看这一篇就够了
  5. 京东内部资料【自然搜索排序白皮书】打算混京东的屌丝必看!
  6. 史上讲解最好的Docker教程,从入门到精通(建议收藏的教程)
  7. 带你从Vue入门到进阶
  8. 启用计算机的无线同屏,Windows10如何使用无线同屏功能?
  9. Java堆内存溢出造成OS卡顿/服务中断的一种情况
  10. Ubuntu 16.04+CUDA8.0+Caffe+OpenCV3.1