跳到主要内容

samba修改密码

· 阅读需 4 分钟
ahKevinXy
作者

Samba 是实现 SMB/CIFS 协议 的开源工具,用于 Linux/Unix 与 Windows/macOS 之间的跨平台文件/打印机共享。下面从服务端搭建客户端访问权限与安全三方面,给出完整可直接使用的流程。


一、服务端:安装与配置(Linux)

1. 安装 Samba

# Debian/Ubuntu
sudo apt update && sudo apt install samba samba-common-bin -y

# CentOS/RHEL/Rocky
sudo dnf install samba samba-client samba-common -y

2. 备份并编辑主配置

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo nano /etc/samba/smb.conf

3. 全局配置([global])

[global]
workgroup = WORKGROUP # 与 Windows 工作组一致
netbios name = LINUX-SMB # 网络邻居显示名
security = user # 用户认证模式
map to guest = bad user # 无效用户映射为访客
min protocol = SMB2 # 安全协议
encrypt passwords = yes
log file = /var/log/samba/log.%m

4. 共享目录配置(示例:可写共享)

在文件末尾添加:

[myshare]
comment = My Samba Share
path = /srv/samba/myshare # 实际共享路径
browseable = yes # 可被浏览
writable = yes # 可写
read only = no
valid users = sambauser # 允许的用户
create mask = 0664 # 新建文件权限
directory mask = 0775 # 新建目录权限

5. 创建共享目录并授权

sudo mkdir -p /srv/samba/myshare
sudo chown -R sambauser:sambauser /srv/samba/myshare
sudo chmod 2775 /srv/samba/myshare # SGID 继承组

6. 创建 Samba 用户(必须是系统已有用户)

# 先创建系统用户(可选)
sudo useradd -m sambauser
# 设置 Samba 密码
sudo smbpasswd -a sambauser

7. 启动并设置开机自启

sudo systemctl start smbd nmbd
sudo systemctl enable smbd nmbd
sudo systemctl status smbd # 检查状态

8. 防火墙放行(如开启)

# Ubuntu/Debian
sudo ufw allow samba

# CentOS/RHEL
sudo firewall-cmd --add-service=samba --permanent
sudo firewall-cmd --reload

二、客户端:访问 Samba 共享

1. Windows 访问

  1. 打开资源管理器,地址栏输入:
    \\<服务器IP>\myshare
  2. 输入 Samba 用户名/密码(如 sambauser)。
  3. 可右键映射为网络驱动器,方便长期使用。

2. Linux 客户端访问

方式一:临时挂载(CIFS)

# 安装 cifs-utils
sudo apt install cifs-utils -y # Debian/Ubuntu
sudo dnf install cifs-utils -y # CentOS/RHEL

# 创建挂载点
sudo mkdir -p /mnt/smbshare

# 挂载
sudo mount -t cifs //<服务器IP>/myshare /mnt/smbshare \
-o username=sambauser,password=你的密码,vers=3.0

方式二:永久挂载(/etc/fstab)

sudo nano /etc/fstab
# 添加一行
//<服务器IP>/myshare /mnt/smbshare cifs credentials=/etc/smb.creds,vers=3.0 0 0

创建凭证文件(安全):

sudo nano /etc/smb.creds
username=sambauser
password=你的密码

sudo chmod 600 /etc/smb.creds # 仅 root 可读
sudo mount -a # 生效

方式三:smbclient 工具(交互式)

smbclient //<服务器IP>/myshare -U sambauser
# 输入密码后,可用 ls、get、put 等命令

3. macOS 访问

  1. 访达 → 前往 → 连接服务器
  2. 输入:smb://<服务器IP>/myshare
  3. 输入用户名/密码,挂载后即可读写。

三、常用权限与安全配置

1. 匿名共享(谨慎使用)

[public]
path = /srv/samba/public
browseable = yes
writable = yes
guest ok = yes # 允许匿名
map to guest = bad user

2. 仅指定组可访问

valid users = @smbgroup  # 允许 smbgroup 组
write list = @smbadmin # 仅管理员组可写

3. 禁止浏览但可直接访问

browseable = no  # 不在网络邻居显示
# 仍可通过 \\IP\myshare 直接访问

四、常见问题排查

  1. 无法连接:检查防火墙、SELinux、Samba 服务状态。
  2. 权限拒绝:确认目录权限smb.conf 配置一致。
  3. 挂载失败:检查 cifs-utils 是否安装、协议版本(vers=3.0)。
  4. 查看日志:/var/log/samba/ 定位错误。

五、卸载与停止

# 卸载挂载
sudo umount /mnt/smbshare

# 停止服务
sudo systemctl stop smbd nmbd
 smbpasswd -a <username>