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 文件共享服务器,适用于家庭或小型办公室环境。