CentOS 源码安装 Samba

Samba 是一款流行的开源软件,它允许 Linux 系统与其他操作系统(如 Windows)共享文件和打印机,在 CentOS 系统中,我们可以通过源码安装的方式来安装 Samba,以满足特定需求或优化性能,本文将详细介绍在 CentOS 系统上源码安装 Samba 的步骤。
安装前的准备
确保系统已更新
在安装 Samba 之前,请确保您的 CentOS 系统已更新至最新状态,可以使用以下命令更新系统:
sudo yum update
安装编译工具
由于 Samba 是一个 C 语言编写的程序,因此需要安装编译工具,以下是安装编译工具的命令:
sudo yum install -y gcc make autoconf automake libtool
安装依赖库
Samba 需要一些依赖库来支持其功能,以下命令可以安装这些依赖库:
sudo yum install -y openssl-devel pam-devel krb5-devel python-devel talloc-devel tdb-devel libaio-devel systemd-devel
下载 Samba 源码
访问 Samba 官方网站(https://www.samba.org/),下载所需的 Samba 版本源码。

将下载的源码包解压到指定目录,
/usr/local/src/:
tar -xvf samba-<version>.tar.gz -C /usr/local/src/
编译和安装 Samba
进入 Samba 源码目录:
cd /usr/local/src/samba-<version>
配置编译选项,以下配置将启用 Samba 的所有功能:
./configure --prefix=/usr/local/samba --sysconfdir=/etc/samba --libdir=/usr/local/lib --with-kerberos --with-ssl --with-acl-support --with-sys-quotas --with-smbpass-md5 --with-winbind --with-idmap-support --with-dns-service-name=samba
编译 Samba:
make
安装 Samba:
sudo make install
配置 Samba
复制配置文件:
sudo cp /usr/local/samba/private/smb.conf /etc/samba/smb.conf
- 编辑
/etc/samba/smb.conf文件,配置 Samba 服务,以下是一个基本的配置示例:
[global] workgroup = MYWORKGROUP netbios name = MYNETBIOSNAME security = user encrypt passwords = yes obey pam permissions = yes idmap config * : backend = tdb idmap config * : range = 1000-9999 idmap config * : default = yes idmap config * : use rfc2307 = yes idmap config * : backend = tdb idmap config * : range = 1000-9999 idmap config * : default = yes idmap config * : use rfc2307 = yes [public] path = /var/www/html browsable = yes writable = yes guest ok = yes read only = no
创建 Samba 用户和组:
sudo groupadd sambashare sudo useradd -M -g sambashare sambashare
设置 Samba 用户密码:

sudo smbpasswd -a sambashare
启动和测试 Samba 服务
启动 Samba 服务:
sudo systemctl start smbd sudo systemctl enable smbd
使用 Samba 客户端(如 Windows 资源管理器)连接到 Samba 共享。
FAQs
问题 1:在编译 Samba 时遇到错误 "configure: error: Cannot find krb5.h"
解答: 确保已安装 krb5 库,可以使用以下命令安装:
sudo yum install krb5-devel
问题 2:Samba 服务启动失败,提示 "Failed to start smbd.service: Unit not found."
解答: 确保 Samba 服务已安装,可以使用以下命令安装:
sudo yum install samba
