• CentOS部署Samba服务


    在这里插入图片描述



    Samba网盘,Samba是一个网络服务器,用于Linux和Windows之间共享文件,Samba一般装在Linux系统中作为服务器,为Windows用户提供网盘。

    环境准备与软件包安装

    第一步准备环境,第二部安装软件包

    #1.准备环境
    service iptables status #查看是否开启
    service iptables stop #临时关闭
    chkconfig iptables off #永久关闭
    setenforce 0 #临时关闭
    vim /etc/sysconfig/selinux #永久关闭需要修改配置文件
    
    #2.安装软件包
    yum install samba -y
    yum erase samba -y #卸载
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    配置文件

    #3.修改配置文件
    vim /etc/samba/smb.conf
    
    • 1
    • 2

    打开配置文件,找到下面所示代码块
    在这里插入图片描述
    这里是Samba网盘的三种模式,user/share/server,我们主要用前两种:

    • user: 需用用户密码登录,密码由tdbsam驱动程序管理;
    • share:共享模式,不需要用户密码;

    share模式

    share模式即共享模式,samba的共享的定义可以在下面看到
    在这里插入图片描述
    我们可以按照下面的语法格式来定义自己的配置

    comment = ......   设置共享注译
    path =    设置共享目录的物理路径
    valid users = @组名,用户名   设置允许哪些合法组或用户访问
    public = yes|no  设置共享资源是否能给游客帐号访问
    browseable = yes|no  设置该共享为隐藏共享
    writable = yes|no 设置是否允许客户端写入数据
    hosts allow =  设置允许访问该共享的合法网段或IP
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    可以直接复制下面我写好的配置,每句话的含义见上面的语法说明

    [company]
    comment=share file
    path=/company #共享文件夹的目录,前提是已经创建好这个文件夹
    public=yes #公共的,不需要用户密码
    writable=yes #可写
    write list=+staff #所有用户都可以写
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    将这段内容直接写在配置文件末尾即可
    在这里插入图片描述
    保存配置文件,启动Samba服务

    service smb start
    
    • 1

    在Windows下登录Samba网盘

    接下来就是测试我们部署好的Samba服务了,接下来请按下面步骤操作
    首先,右击“此电脑”,选择映射网络驱动器
    在这里插入图片描述
    打开映射网络驱动器后,输入服务器名和samba配置文件中的标题,此时可能会报错
    在这里插入图片描述

    “因为文件共享不安全,不能连接…”报错的解决方案

    解决方法如下:“打开控制面板-程序-程序和功能-启用或关闭Windows功能”
    在这里插入图片描述
    在弹出的对话框中,选中SMB进行安装,安装后需要重启Windows。
    在这里插入图片描述
    这里要注意,服务器IP是你的Linux的IP,后面的company,是在配置文件/etc/samba/smb.conf中,[]内部的那个标题,也就是刚才我们在配置文件中加入内容的第一行[]内的内容。
    在这里插入图片描述
    这样,在连接samba后,就会执行[company]后面的内容。
    如果此时还是无法连接Samba,可以尝试下面解决方法,在Samba配置文件中关闭打印机。
    在这里插入图片描述

    权限问题

    回车连接后,我们就可以在Windows下看到Linux中的共享文件夹。
    这里要注意,我们虽然在samba中设置了写权限,但是我们去不能在Windows下删除或新建文件,这是因为我们的Windows属于客户端,客户端远程登录samba服务访问/company目录,我们可以通过ll命令查看/company目录的权限,这个目录是属于root用户,root组的,而我们的客户端属于其它用户,权限是r-x。也就是说samba服务给我们权限了,但是操作系统没给我们权限。
    我们可以给其他用户增加写权限,就可以在Windows客户端操作/company目录了。(还要注意具体文件有没有写权限)
    在这里插入图片描述
    添加权限

    chmod o+w /company/
    
    • 1

    samba所提供的这种服务,实际上是一种文件存储,使用posifix标准。也就是说,我们可以进行一切文件级别的操作,即文件增删、修改文件名等等。

    user模式

    在这里插入图片描述
    需要用户密码来访问,在samba服务中只有密码服务,没有用户名的服务,所以我们需要在Linux中建一个用户名。我们增加一个用户,并设置好密码
    在这里插入图片描述
    重启Samba服务,在Windows下再次打开映射网络映射驱动器,输入服务器主机名以及刚才设置好的用户名,勾选“使用其它凭据连接”
    在这里插入图片描述
    在弹出的登陆界面输入用户名与密码
    在这里插入图片描述
    我们登录tempuser这个用户,实际上就是访问tempuser的家目录。登陆后,我们就可以看到在我的电脑中多了一个tempuser
    在这里插入图片描述
    这里与share方式登录有一个很大的区别就是,share登录samba网盘的时候不需要用户密码,属于Linux下的其他用户,所以在客户端操作的时候需要在Linux下增加其它用户的权限;而user模式下,客户端登录samba网盘需要用户名username和密码,所以它在linux下就是username用户,它就拥有username的权限。
    在这里插入图片描述
    也就是说,我们创建的这个用户username即是samba用户也是系统用户,它既可以登录samba,也可以登录Linux。如果我们希望username只用于登陆samba,不能登录Linux操作系统,我们可以对用户username进行限制,使它不能登录Linux。
    在这里插入图片描述
    现在我们在Windows下操作tempuser文件夹和在Linux下操作是一样的,并且Windows下的操作会同步到服务端
    在这里插入图片描述


    在这里插入图片描述

    在这里插入图片描述


  • 相关阅读:
    vscode OpenCV环境搭建
    Linux:TTY串口接收中断
    Matlab/simulink光伏发电的恒定电压法MPPT仿真(持续更新)
    【Linux】冯诺依曼体系结构
    计组+系统02:30min导图复习 存储系统
    Python数据分析与机器学习21- 逻辑回归项目实战5-阀值
    双十一3000元投影仪评测排名,性价比最高的投影仪是什么品牌
    第十一章 将对象映射到 XML - 控制流属性的映射形式
    深入理解并发和并行
    【长文档】进行排版的正确顺序?
  • 原文地址:https://blog.csdn.net/qq_43471489/article/details/125474613