Ubuntu 20.04下安装Samba(Cifs/Smb)

  接上一篇,本篇记录一下Ubuntu下Samba的安装配置,windows下的共享目录的设置有很多文章,这里就不说了。

  Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,我们可以使用apt安装,也可以去官网下载软件或者源码:

  apt安装

  如果是使用apt,那么安装就方便很多了:  

    #安装
    sudo apt update
    sudo apt install samba

  然后修改配置/etc/samba/smb.conf ,添加用户就行了,这个和下面的一样

  下载软件包

  注:为了方便使用,本文所编译的安装包也分享出来了,包括所需要的依赖,需要的可以去下载:

  链接:https://pan.baidu.com/s/1hIwwQKtIMZ5FAcdHOMmX2Q (提取码:7rt4

  有时候,我们是离线环境,可能需要独立的软件包,或者是嫌弃apt安装的Samba版本太低,我们可以通过去官网下载(下载速度可能很慢,可能需要提前准备)

  Samba官网地址:https://www.samba.org/samba/

  

  我们可以选择最新的包,下载好之后,我们可以解压部署就行了,这里我的系统是Ubuntu20.04

# 安装依赖包(期间会选择时区,亚洲输入6,上海输入70)
    sudo apt update
    sudo apt install make gcc tar python3-dev pkg-config libgnutls28-dev liblmdb-dev libbison-dev flex libgpgme-dev \
        libparse-yapp-perl libjansson-dev libarchive-dev libacl1-dev libldap2-dev libpam0g-dev libdbus-1-dev libicu-dev \
        libtracker-sparql-2.0-dev python3-markdown python3-dnspython libtasn1-bin libpopt-dev
    # 解压
    tar -zxf samba-4.20.0.tar.gz
    # 切换目录
    cd samba-4.20.0

  这里环境的按照一定要按照./configure提示来安装,缺少哪个就安装哪个   

    # 配置:--prefix表示存放编译后的文件目录
    sudo ./configure --prefix=/opt/samba-4.20.0
    # 编译
    sudo make
    # 安装
    sudo make install

   编译可能需要几分钟,执行完成之后,可以看到/opt/samba-4.20.0目录下的文件内容:

  

  现在我们可以把这整个目录打包一下,以后就可以把它直接发到服务器上去部署了:tar -zcf samba-4.20.0-bin.tar.gz -C /opt .

   那么怎么安装部署呢?

  我这里还是在Ubuntu20.04上安装部署  

    # 解压到一个目录,比如我这里是/opt
    sudo tar -zxf samba-4.20.0-bin.tar.gz -C /opt
    # 创建用户(输入密码后一路回车)
    adduser samba
    # 创建一个目录,后面用于共享
    sudo mkdir /smb
    # 授权,修改所有者
    sudo chown -R samba. /smb

  然后可以增加配置(smb.conf),注意是 /opt/samba-4.20.0/etc/smb.conf目录,不是 /etc/smb.conf: 

    [global]
    workgroup = WORKGROUP
    server string = %h server (Samba, Ubuntu)
    log file = /opt/samba-4.20.0/var/log.%m
    max log size = 10000
    logging = file
    server min protocol=lanman2
    server role = standalone

    [test]
    comment = Test
    path = /smb
    available = yes
    browseable = yes
    writeable = yes
    guest ok = no
    valid users = samba
    max connections = 1000

  smb.conf的介绍可以参考官网说明:https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html

  接着为Samba添加用户认证:

    # 为samba用户添加smb的密码访问权限,回车后输入密码:123456
    sudo /opt/samba-4.20.0/bin/smbpasswd -a samba

  如果执行报错,可能缺少相关依赖包,一个简单的方法是去仓库找依赖包进行安装,我用的Ubuntu,所以我就去它的apt仓库找,地址:https://ubuntu.pkgs.org,找到之后把它下载下来,然后使用dpkg安装就好了,我这边显示缺少的依赖包有下面这些(为了方便,我就直接安装了,如果服务器不能联网,那么只能去仓库找下载下来再安装了):

    sudo apt update
    sudo apt install libldap2-dev libicu-dev libjansson-dev libpopt-dev

  然后我们就可以启动了:

    # 前台启动,-F表示在前台启动,如果向指定配置文件,那么可以使用-s或者--configfile参数指定
    /opt/samba-4.20.0/sbin/smbd -F --no-process-group

  然后我们就可以访问了,但是为了方便,我们使用服务单元包装一下( smbd.service):  

    [Unit]
    Description=Samba

    [Service]
    Type=simple
    WorkingDirectory=/opt/samba-4.20.0
    User=root
    ExecStart=/opt/samba-4.20.0/sbin/smbd -F --no-process-group
    ExecStop=/usr/bin/kill -9 $MAINPID
    KillMode=process
    Restart=always
    PrivateTmp=true

    [Install]
    WantedBy=multi-user.target

  

posted @ 2024-05-02 09:47  没有星星的夏季  阅读(2056)  评论(0编辑  收藏  举报