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