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
echo "🚀 开始安装和配置 Samba 服务..." apt update && apt install samba -y mkdir -pm 755 /mnt && cat >>/etc/samba/smb.conf <<'MYENDMARK'
[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
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
echo "🚀 开始安装和配置 Samba 服务..." sudo apt update && sudo apt install samba -y sudo mkdir -pm 755 /mnt && sudo cat >>/etc/samba/smb.conf <<'MYENDMARK'
[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
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
echo "🚀 开始安装和配置 Samba 服务..." apt update && apt install samba -y mkdir -pm 755 /mnt/ntfs && cat >>/etc/samba/smb.conf <<'MYENDMARK'
[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
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
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
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
echo "🚀 开始安装和配置 Samba 服务..." apk update && apk add samba shadow mkdir -pm 755 /mnt && cat >>/etc/samba/smb.conf <<'MYENDMARK'
[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
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 systemctl status smb rc-service samba status
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 文件共享服务!如有问题,欢迎交流讨论。🎊
💡 提示:本文档中的脚本会持续更新,请访问项目页面获取最新版本。