本节在ubuntu18.4的系统上实现samba服务器的安装,并利用samba服务器搭建共享目录,给局域网内的windows系统提供共享文件夹服务。本节包括samba软件的安装、samba配置共享目录和samba服务器开机自启动三部分组成,具体操作如下所示:
(一)Samba软件安装
1.进入github下载samba最新软件压缩包,samba最新软件版本为V4.17.6.
https://github.com/samba-team/samba/tags
![](https://img-blog.csdnimg.cn/8a2d1043bad448f5974735475fb3f0ff.png)
2.拷贝samba源码压缩包到ubuntu18.4的工作目录,并解压源码压缩包。
![](https://img-blog.csdnimg.cn/f0d91e69ab36470d805e3b691aa3d534.png)
3.参考samba官网教程(https://wiki.samba.org/index.php/Package_Dependencies_Required_to_Build_Samba),在线安装samba必备库文件(注意:不同的ubuntu版本,在线安装的samba必备库存在差异,请具体参考samba官网说明)。
sudo apt-get install acl apt-utils attr autoconf bind9utils binutils bison build-essential ccache chrpath curl debhelper dnsutils docbook-xml docbook-xsl flex gcc gdb git glusterfs-common gzip heimdal-multidev hostname htop jq krb5-config krb5-kdc krb5-user language-pack-en lcov libacl1-dev libarchive-dev libattr1-dev libavahi-common-dev libblkid-dev libbsd-dev libcap-dev libcephfs-dev libcups2-dev libdbus-1-dev libglib2.0-dev libgnutls28-dev libgpgme11-dev libicu-dev libjansson-dev libjs-jquery libjson-perl libkrb5-dev libldap2-dev liblmdb-dev libncurses5-dev libpam0g-dev libparse-yapp-perl libpcap-dev libpopt-dev libreadline-dev libsystemd-dev libtasn1-bin libtasn1-dev libtracker-sparql-2.0-dev libunwind-dev lmdb-utils locales lsb-release make mawk mingw-w64 patch perl perl-modules pkg-config procps psmisc python3 python3-cryptography python3-dbg python3-dev python3-dnspython python3-gpg python3-iso8601 python3-markdown python3-pexpect python3-pyasn1 python3-requests python3-setproctitle rng-tools rsync sed sudo tar tree uuid-dev wget xfslibs-dev xsltproc xz-utils zlib1g-dev
![](https://img-blog.csdnimg.cn/f3df1aec86154a8e8e624b32b3a416f6.png)
4.进入samba源码目录,运行.configure进行samba软件的配置。
![](https://img-blog.csdnimg.cn/23f55510c39d40a886d670975dda3d5d.png)
5.进行samba的源码编译。
![](https://img-blog.csdnimg.cn/27534b58baad436f9d9c5de34c594b5e.png)
6.进行samba软件的安装(注意:root权限)。
![](https://img-blog.csdnimg.cn/6e856cf7bd004fe6bcd2bf5459cdc33a.png)
7.samba默认安装目录为/usr/local/samba目录,samba安装完成后该目录文件如下所示:
![](https://img-blog.csdnimg.cn/c7b361c0ae45469c93a543036248da43.png)
(二)Samba服务器配置
1.在ubuntu的/home/lsl目录下新建share_disk的目录,在该目录下新建a.c的文件,新建文件是为了共享目录搭建成功查找该文件使用。
![](https://img-blog.csdnimg.cn/c4839b6acd794332b68ab1b8a5fcc85e.png)
2.拷贝samba解压目录下example/dce-dfs子目录下的smb.conf到samba安装目录/usr/local/samba/etc下,如下所示:
![](https://img-blog.csdnimg.cn/47d34c345f4649aba8537d8dd647e537.png)
3.修改/usr/local/samba/etc目录下的smb.conf文件,如下所示:
![](https://img-blog.csdnimg.cn/cc19baaaf4744da79a0f7db02f31e99a.png)
4.将lsl的账户名(该账户名必须为ubuntu用户列表里的账户)添加到samba服务器:lsl,密码:123456。
sudo /usr/local/samba/bin/smbpasswd -a lsl
![](https://img-blog.csdnimg.cn/9979d1438f734a1b9b91fae67b4d5f8d.png)
5.运行如下命令,开启samba服务器。
sudo /usr/local/samba/sbin/smbd –D
![](https://img-blog.csdnimg.cn/c30caa6470c245309e81eb23263abeea.png)
6.获得linux的ip地址(192.168.50.83),在windows操作系统通过(以win10系统为例)\\192.168.50.83查看结果如下所示:
![](https://img-blog.csdnimg.cn/bd551c97b3dc4b54954c839d146d7a94.png)
![](https://img-blog.csdnimg.cn/119176d0aa2c4b3f86cd84d846b21579.png)
![](https://img-blog.csdnimg.cn/3fcba169e79f4d52976cd223ff3a002d.png)
7.至此,基于源码的samba服务器的搭建完成。
(三)Samba服务器开机自动设置
1.将 /lib/systemd/system/rc-local.service 链接到 /etc/systemd/system/ 目录下面来,然后对/etc/systemd/system/rc-local.service的文件末尾添加如下内容,如下图所示:
sudo ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service
sudo vim /etc/systemd/system/rc-local.service
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
![](https://img-blog.csdnimg.cn/760ae80363974faba2071306b2d50085.png)
2.在/etc目录下,新建rc.loal脚本文件,修改rc.local 的脚本值,如下图所示:
sudo touch /etc/rc.local
sudo vi /etc/rc.local
![](https://img-blog.csdnimg.cn/9dc2d541ead94829a4e67755ddd84449.png)
3./etc/systemd/system 目录创建软链接。
sudo ln -s /lib/systemd/system/rc.local.service /etc/systemd/system/
![](https://img-blog.csdnimg.cn/be7402654a674d6491669f8e62907f10.png)
4.给脚本添加执行权限,如下图所示:
sudo chmod +x /etc/rc.local
![](https://img-blog.csdnimg.cn/da1129d89daf40eea85cc182591d359b.png)
5.重启ubuntu系统,使用windows直接访问共享目录,同时ubuntu系统里/etc/local目录下的samba_start.log日志文件添加了一条执行成功的信息。
![](https://img-blog.csdnimg.cn/766e7b8ec672495f8fba331b23f6904d.png)
![](https://img-blog.csdnimg.cn/5b32ce5ad7fb4e4ea044b887f2a0b01b.png)