Samba 配置文件 (smb.conf
)
[global]
workgroup = WORKGROUP
server string = Samba Server
server role = standalone server
# 服务器角色,此处为独立服务器
log file = /var/log/samba/log.%m
# 日志文件路径,%m 为客户端机器名变量
max log size = 500
# 日志文件最大大小(KB)
security = user
# 安全模式,基于用户的验证
map to guest = bad user
# 未认证用户的处理方式
dns proxy = no
passdb backend = tdbsam
# 用户密码数据库后端,此处使用 TDB SAM
[share]
comment = share
path = /mnt/share
public = no
# 这个共享不是公开的,访问它需要认证
writable = no
# 这个共享是只读的,用户不能在其中创建或修改文件
valid users = smb
# 限制访问这个共享的用户,只有用户名为 smb 的用户可以访问
printable = no
# 这个共享不是用于打印机的,不能作为打印服务
解释 passdb backend = tdbsam
passdb backend
指定了 Samba 用户密码数据库的后端存储类型。tdbsam
是一种轻量级的数据库格式,用于存储用户账户信息和密码。它相对简单,适合中小型环境。
配置用户
为了访问 Samba 共享资源,用户必须在系统上拥有账号,并且在 Samba 的用户数据库中有对应的条目。
创建系统用户
首先,在服务器上为用户创建一个系统账号:
sudo useradd -m username # 创建新用户,'-m' 选项自动创建用户主目录
sudo passwd username # 为用户设置密码,如果仅用于samba访问可不设置密码
使用 smbpasswd
添加 Samba 用户
然后,使用 smbpasswd
工具为用户在 Samba 数据库中设置密码:
sudo smbpasswd -a username # '-a' 选项用于添加新用户
这里设置的密码是用户访问 Samba 共享时使用的密码,可以与系统登录密码不同。
查看 Samba 状态
使用 smbstatus
命令可以查看当前 Samba 服务器的状态,包括哪些用户连接到了哪些资源:
smbstatus
此命令将输出当前的会话、打开的文件等详细信息。
用户密码数据库路径
Samba 的用户密码通常保存在 TDB (Trivial Database) 文件中。这个文件通常位于:
/var/lib/samba/private/passdb.tdb
此路径可能因安装的 Linux 发行版和 Samba 版本而异,可以在 smb.conf
中查找 private dir
设置确认具体位置。
通过这些步骤和配置,你可以成功地设置并运行一个 Samba 文件共享服务器,适用于家庭或小型办公室环境。