Linux 配置 Samba 服务一键脚本(本地)🐧
快速为不同 Linux 发行版配置 Samba 共享服务的自动化脚本合集!🚀
🌟 目录导航
🌟 脚本特点
- 🔐 安全认证:所有共享均需要用户名密码认证
- 🍎 macOS 优化:完美支持 Apple 生态系统(Time Machine、文件编码等)
- 📁 灵活配置:可自定义共享路径、权限和用户设置
- ⚡ 一键部署:简化复杂配置过程,快速搭建文件共享服务
- 🛡️ 权限控制:精细的用户和目录权限管理
- 🔄 多版本支持:适配主流 Linux 发行版
- 🎯 开箱即用:预配置优化参数,无需复杂调试
- 🔧 易于扩展:模块化设计,可根据需求自定义修改
📋 使用前须知
- ⚠️ 所有脚本默认使用用户名:
admin
,密码: yifan0719
(建议首次使用后立即修改)
- 👑 脚本需要以 root 权限 运行(使用 sudo 或 root 用户)
- 💾 运行脚本前建议备份重要数据
- 🔧 脚本会修改系统 Samba 配置,请确保了解相关风险
- 🌐 确保系统已连接网络,以便下载安装所需软件包
- 🔍 不同发行版可能存在细微差异,请选择对应版本的脚本
一、🎯 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
|
⚠️ 注意事项
- 🔒 首次运行后请及时更改默认密码:
smbpasswd -a admin
- 🌐 确保防火墙允许 Samba 流量(通常端口 139、445)
- 📂 根据实际需求调整共享目录路径和权限设置
- 👥 可添加多个用户并设置不同权限:
useradd
+ smbpasswd -a
- 💾 重要数据请定期备份,脚本会修改系统配置
- 🔄 如需更新配置,修改
/etc/samba/smb.conf
后重启服务:systemctl restart smbd
- 🖥️ 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 文件共享服务!如有问题,欢迎交流讨论。🎊
💡 提示:本文档中的脚本会持续更新,请访问项目页面获取最新版本。