Featured image of post Linux 配置 Samba 服务一键脚本(本地)🐧

Linux 配置 Samba 服务一键脚本(本地)🐧

Linux 配置 Samba 服务一键脚本(本地)🐧 快速为不同 Linux 发行版配置 Samba 共享服务的

Linux 配置 Samba 服务一键脚本(本地)🐧

Linux Samba

快速为不同 Linux 发行版配置 Samba 共享服务的自动化脚本合集!🚀


🌟 目录导航


🌟 脚本特点

  • 🔐 安全认证:所有共享均需要用户名密码认证
  • 🍎 macOS 优化:完美支持 Apple 生态系统(Time Machine、文件编码等)
  • 📁 灵活配置:可自定义共享路径、权限和用户设置
  • 一键部署:简化复杂配置过程,快速搭建文件共享服务
  • 🛡️ 权限控制:精细的用户和目录权限管理
  • 🔄 多版本支持:适配主流 Linux 发行版
  • 🎯 开箱即用:预配置优化参数,无需复杂调试
  • 🔧 易于扩展:模块化设计,可根据需求自定义修改

📋 使用前须知

  1. ⚠️ 所有脚本默认使用用户名: admin,密码: yifan0719(建议首次使用后立即修改)
  2. 👑 脚本需要以 root 权限 运行(使用 sudo 或 root 用户)
  3. 💾 运行脚本前建议备份重要数据
  4. 🔧 脚本会修改系统 Samba 配置,请确保了解相关风险
  5. 🌐 确保系统已连接网络,以便下载安装所需软件包
  6. 🔍 不同发行版可能存在细微差异,请选择对应版本的脚本

一、🎯 Debian Samba 配置脚本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/bash
# Debian Samba 一键配置脚本
echo "🚀 开始安装和配置 Samba 服务..."
apt update && apt install samba -y
mkdir -pm 755 /mnt && cat >>/etc/samba/smb.conf <<'MYENDMARK'

########   我的samba共享设置   ########
[Debian]
     comment = mysamba
     path = /mnt
     browseable = yes
     writeable = yes
     read only = no
     create mask = 0777
     directory mask = 0777
     guest ok = no
     force user = root
     force group = root
     admin users = admin
     valid users = admin,root
     password required = yes
     available = yes
     fruit:encoding = native
     fruit:metadata = stream
     fruit:veto_appledouble = no
     vfs objects = catia fruit streams_xattr
MYENDMARK

# 修改 your_password 为 samba 共享密码
useradd admin 2>/dev/null
(echo your_password; echo your_password) | smbpasswd -a -s admin
systemctl restart smbd
systemctl enable smbd
echo "✅ Debian Samba 配置完成!"

执行方式:

1
chmod +x debian_smb.sh && ./debian_smb.sh

二、🦁 Ubuntu Samba 配置脚本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/bash
# Ubuntu Samba 一键配置脚本
echo "🚀 开始安装和配置 Samba 服务..."
sudo apt update && sudo apt install samba -y
sudo mkdir -pm 755 /mnt && sudo cat >>/etc/samba/smb.conf <<'MYENDMARK'

########   我的samba共享设置   ########
[Ubuntu]
     comment = mysamba
     path = /mnt
     browseable = yes
     writeable = yes
     read only = no
     create mask = 0777
     directory mask = 0777
     guest ok = no
     force user = root
     force group = root
     admin users = admin
     valid users = admin,root
     password required = yes
     available = yes
     fruit:encoding = native
     fruit:metadata = stream
     fruit:veto_appledouble = no
     vfs objects = catia fruit streams_xattr
MYENDMARK

# 修改 your_password 为 samba 共享密码
useradd admin 2>/dev/null
(echo your_password; echo your_password) | sudo smbpasswd -a -s admin
sudo systemctl restart smbd
sudo systemctl enable smbd
echo "✅ Ubuntu Samba 配置完成!"

执行方式:

1
chmod +x ubuntu_smb.sh && sudo ./ubuntu_smb.sh

三、🔧 PVE (Proxmox VE) Samba 配置脚本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/bin/bash
# PVE Samba 一键配置脚本 - 双共享目录版
echo "🚀 开始安装和配置 Samba 服务..."
apt update && apt install samba -y
mkdir -pm 755 /mnt/ntfs && cat >>/etc/samba/smb.conf <<'MYENDMARK'

########   我的samba共享设置   ########

[local]
     comment = PVE Local Storage
     path = /var/lib/vz/
     browseable = yes
     writeable = yes
     read only = no
     create mask = 0777
     directory mask = 0777
     guest ok = no
     force user = root
     force group = root
     admin users = admin
     valid users = admin,root
     password required = yes
     available = yes
     fruit:encoding = native
     fruit:metadata = stream
     fruit:veto_appledouble = no

[PVE-ntfs]
     comment = NTFS External Storage
     path = /mnt/ntfs
     browseable = yes
     writeable = yes
     read only = no
     create mask = 0777
     directory mask = 0777
     guest ok = no
     force user = root
     force group = root
     admin users = admin
     valid users = admin,root
     password required = yes
     available = yes
     fruit:encoding = native
     fruit:metadata = stream
     fruit:veto_appledouble = no
MYENDMARK

# 修改 your_password 为 samba 共享密码
useradd admin 2>/dev/null
(echo your_password; echo your_password) | smbpasswd -a -s admin
systemctl restart smbd
systemctl enable smbd
echo "✅ PVE Samba 配置完成!"

执行方式:

1
chmod +x pve_smb.sh && ./pve_smb.sh

四、🎩 CentOS Samba 配置脚本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/bash
# CentOS Samba 一键配置脚本
echo "🚀 开始安装和配置 Samba 服务..."
yum update -y && yum install samba samba-client -y
mkdir -pm 755 /mnt && cat >>/etc/samba/smb.conf <<'MYENDMARK'

[CentOS]
     comment = CentOS Samba Share
     path = /mnt
     browseable = yes
     writeable = yes
     read only = no
     create mask = 0777
     directory mask = 0777
     guest ok = no
     force user = root
     force group = root
     admin users = admin
     valid users = admin,root
     password required = yes
     available = yes
     fruit:encoding = native
     fruit:metadata = stream
     fruit:veto_appledouble = no
     vfs objects = catia fruit streams_xattr
MYENDMARK

# 修改 your_password 为 samba 共享密码
useradd admin 2>/dev/null
(echo your_password; echo your_password) | smbpasswd -a -s admin
systemctl restart smb
systemctl enable smb
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
echo "✅ CentOS Samba 配置完成!"

执行方式:

1
chmod +x centos_smb.sh && ./centos_smb.sh

五、🏔️ Alpine Linux Samba 配置脚本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/ash
# Alpine Linux Samba 一键配置脚本
echo "🚀 开始安装和配置 Samba 服务..."
apk update && apk add samba shadow
mkdir -pm 755 /mnt && cat >>/etc/samba/smb.conf <<'MYENDMARK'

########   我的samba共享设置   ########
[Alpine]
     comment = Alpine Samba Share
     path = /mnt
     browseable = yes
     writeable = yes
     read only = no
     create mask = 0777
     directory mask = 0777
     guest ok = no
     force user = root
     force group = root
     admin users = admin
     valid users = admin,root
     password required = yes
     available = yes
     fruit:encoding = native
     fruit:metadata = stream
     fruit:veto_appledouble = no
     vfs objects = catia fruit streams_xattr
MYENDMARK

# 修改 your_password 为 samba 共享密码
useradd admin 2>/dev/null
(echo your_password; echo your_password) | smbpasswd -a -s admin
rc-service samba start
rc-update add samba
echo "✅ Alpine Linux Samba 配置完成!"

执行方式:

1
chmod +x alpine_smb.sh && ./alpine_smb.sh

🔍 验证与排查

脚本执行完成后,可通过以下方式验证 Samba 服务状态:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# 检查服务状态
systemctl status smbd  # Debian/Ubuntu/PVE
systemctl status smb   # CentOS
rc-service samba status # Alpine

# 查看共享列表
smbclient -L localhost -U admin

# 测试连接
smbclient //localhost/ShareName -U admin

# 查看配置语法是否正确
testparm

# 查看日志信息(实时监控)
tail -f /var/log/samba/log.smbd

⚠️ 注意事项

  1. 🔒 首次运行后请及时更改默认密码:smbpasswd -a admin
  2. 🌐 确保防火墙允许 Samba 流量(通常端口 139、445)
  3. 📂 根据实际需求调整共享目录路径和权限设置
  4. 👥 可添加多个用户并设置不同权限:useradd + smbpasswd -a
  5. 💾 重要数据请定期备份,脚本会修改系统配置
  6. 🔄 如需更新配置,修改 /etc/samba/smb.conf 后重启服务:systemctl restart smbd
  7. 🖥️ Windows 连接可能需要启用 SMB1 协议(不建议)或调整客户端设置

🆘 常见问题

Q: 脚本执行失败怎么办?
A: 检查网络连接、权限和系统兼容性,查看具体错误信息。可尝试手动执行每条命令定位问题。

Q: 如何添加新用户?
A: 使用 useradd 新用户名smbpasswd -a 新用户名 命令,然后在 smb.conf 中添加相应权限。

Q: 如何修改共享配置?
A: 编辑 /etc/samba/smb.conf 文件后重启 Samba 服务:systemctl restart smbd

Q: Windows 无法连接怎么办?
A: 检查网络连通性,确保 SMB 协议版本兼容。Windows 10/11 可能需要启用 SMB 客户端功能。

Q: macOS 连接出现问题?
A: 确保使用了脚本中的 fruit 相关配置,这些选项专门优化了 macOS 兼容性。

Q: 如何卸载 Samba 服务?
A: 使用发行版对应的包管理命令卸载(如 apt remove samba),并备份重要数据。

Q: 权限配置不生效?
A: 检查目录权限和 SELinux/AppArmor 设置,可能需要调整安全策略或使用 chcon 命令。


希望这些脚本能帮助您快速搭建 Samba 文件共享服务!如有问题,欢迎交流讨论。🎊

💡 提示:本文档中的脚本会持续更新,请访问项目页面获取最新版本。