• 【samba】Ubuntu20.04安装并配置Samba服务


    1、在终端中执行下列指令:

    cat /etc/issue

    查看当前Ubuntu 的版本号
    在这里插入图片描述

    2、更新当前软件

    sudo apt-get upgrade
    sudo apt-get update
    sudo apt-get dist-upgrade

    3、安装samba服务器

    sudo apt-get install samba samba-common

    检查是否成功安装samba服务:samba -V (如果出现下面版本号说明已经安装了samba服务器)
    在这里插入图片描述
    如果安装失败,请检查你的网络,确认linux可以访问互联网,若可以联网请尝试更换ubuntu镜像源,桌面版直接在软件和更新中配置,服务器版百度上很多

    4、创建一个用于共享的samba目录

    此步骤可选 我直接把整个工作目录设置为共享文件夹

    mkdir /home/share //如果配置的共享目录不存在则创建

    5、给共享的这个目录设置权限

    sudo chmod 777 /home/yhq

    6、添加Samba访问账号及密码(需要和配置文件中相对应)

    添加samba用户,用于其他人或设备认证,这里添加的用户需要在系统账号中存在,否则添加失败

    添加Samba访问账号及设置密码:
    yhq@yhq-VirtualBox:~$ sudo smbpasswd -a yhq
    New SMB password:
    Retype new SMB password:
    Added user yhq.

    可选
    创建用户名映射文件并配置(根据配置文件来定义)

    sudo vi /etc/samba/smbusers
    在文件中写上 share="network username"并保存

    拓展:

    smbpasswd 命令的用法 
        smbpasswd -a 增加用户(要增加的用户必须以是系统用户)   
        smbpasswd -d 冻结用户,就是这个用户不能在登录了   
        smbpasswd -e 恢复用户,解冻用户,让冻结的用户可以在使用   
        smbpasswd -n 把用户的密码设置成空.   
                     要在global中写入 null passwords -true   
        smbpasswd -x  删除用户  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    # 查看samba用户列表(需要root权限)
    pdbedit -L
     
    # 对samba用户进行管理(用户已经在系统中创建)(需要root权限)
    smbpasswd -h  #查看支持的命令列表
     
    # 异常时可查看日志情况
    cat /var/log/samba/log.%m
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    7、备份 smb.conf 配置文件

    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

    8、配置samba的配置文件

    sudo vi /etc/samba/smb.conf

    在配置文件smb.conf的最后添加下面的内容:

    [global]
    
        ; 创建工作组 设定 Samba Server 所要加入的工作组或者域  
        workgroup = WORKGROUP 
    
        ; 为了防止出现中文目录乱码的情况。其中根据你的local,UTF-8 有可能需要改成 cp936
        ; display charset = UTF-8
        unix charset = UTF-8
        dos charset = cp936 
    	
        ; 是否允许guest用户访问
        guest ok = no
        
        ; 注:如果 #security 存在就直接修改,不存在就创建
        ; security = user 
    
        ; 安全模式  我们设置用户安全级别
        security = user 
    	
    	; 说明:用来定义用户名映射,比如可以将root换成administrator、admin等。不过要事先在smbusers文件中定义好。
    	; 比如:root = administrator admin,这样就可以用administrator或admin这两个用户来代替root登陆Samba Server,更贴近windows用户的习惯。
        username map = /etc/Samba/smbusers 
    
    ; 共享名,该共享标签,该名字为在电脑上看到的共享名 注意网络映射的路径是这标签名字不是共享路径的名字
    [share]
    
        ; 该共享描述
        comment = Shared Folder with username and password 
    
        ; 共享文件夹路径
        path = /home/yhq/
    
        ; 表示是否允许匿名访问该共享目录
        public = no
    
        ; 配置的Samba访问账号 指明可以访问的用户
        valid users = yhq
    
        ; 表示是否可以在 Window Explorer中显示该目录
        browsable = no
    
        ; 指明新建立的文件的属性
        create mask = 777 
    
        ; 指明新建立的目录的属性
        directory mask = 777
    
        ; force group 和force user 规定创建的文件或文件夹的拥有者和组拥有者是谁 
        ; 一般这两个值来空,则表示拥有者和组拥有者为创建文件者。 如设定值,如force group=yhq
        ; Force user=yhq,则不管是谁创建的文件和文件夹,拥有者都为yhq和yhq组。
    
        ; force user强制把建立文件的属主是谁。如果我有一个目录,让guest可以写,那么guest就可以删除,
        ; 如果我用force user=yhq强制建立文件的属主是yhq,同时限制create mask = 0755; 这样guest就不能删除了。
    
        force user = yhq 
        force group = yhq
    
        ; available用来指定该共享资源是否可用
        available = yes 
    
        ; 共享路径读权限 设置共享是否可浏览,如果no则表示隐藏,需要通过"//ip/共享目录"进行访问
        browseable = yes
    
        ; 共享路径写权限
        writable = yes
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67

    9、重启samba服务器

    sudo service smbd restart  或者 /etc/init.d/samba restart
    
    • 1

    有的版本路径不是/etc/init.d/samba 可以尝试用

    sudo /etc/init.d/samba restart
    #sudo /etc/init.d/samba-ad-dc restart
    
    • 1
    • 2

    10、在Windows中访问samba服务

    使用ifconfig查看IP
    在这里插入图片描述
    然后在Windows文件管理器中输入\linux ip 便可以看到linux samba服务共享的文件夹
    在这里插入图片描述

    11、将共享路径映射为Windows磁盘

    若经常使用的共享,可直接映射为Windows的磁盘,不用每次都输ip,但linux ip变了需要重新映射,所以建议将linux ip设为固定ip
    ps:
    在这里插入图片描述

    我的电脑 ->右键 ->映射网络驱动器,文件夹输入框输入\linux ip\共享名,不能直接输ip,一定要加上共享名,点击完成

    或者使用
    在这里插入图片描述
    在这里插入图片描述
    接下来就可以在我的电脑里看到映射的网络磁盘了

    接下来你就可以在Windows上编写代码,然后在linux下编译验证了

    12、开启windows的samba客户端(若无法连接可以尝试)

    Win10打开控制面板–程序–windows功能启动或关闭–打开smb客户端

    在这里插入图片描述

    然后重启系统让设置生效!!!

    引用:
    Linux samba的配置和使用
    https://blog.csdn.net/weixin_40806910/article/details/81917077
    ubuntu 20.04 安装配置Samba服务,Windows 和 linux协同工作
    https://blog.csdn.net/mvp_Dawn/article/details/105847485
    Samba 安装与配置,以及配置说明参数详解
    https://www.jianshu.com/p/f7fb4ad09c11
    virtual box中配置samba共享方法
    https://blog.csdn.net/refine19/article/details/6911695
    windows下访问SMB服务器(非匿名)
    https://developer.aliyun.com/article/535717
    Samba服务(匿名用户访问、本地用户访问、虚拟用户访问)
    https://blog.51cto.com/u_10316297/2118395

  • 相关阅读:
    unity项目加密(比如到指定时间,项目打不开)
    函数,递归以及dom简单操作
    嵌入式软件架构基础设施设计方法
    Python实现通过GUI界面,进行自动化“网络监控”
    猿创征文 | 响应式布局
    41.朴素贝叶斯Naive Bayes公式推导与理解+求解公园凉鞋问题(借助文氏图)
    在 Android 上恢复已删除音乐的 5 种简单方法
    someip 入门
    学编程始于C语言,但只学C远远不够的!
    Cracking the Safes之Linux系统下gdb调试
  • 原文地址:https://blog.csdn.net/oNelson123/article/details/125414617