🎬 HoRain云小助手个人主页

 🔥 个人专栏: 《Linux 系列教程》《c语言教程

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

img


一、安装 Samba

1. 安装软件包
# CentOS/RHEL
sudo yum install samba samba-client -y

# Ubuntu/Debian
sudo apt install samba samba-common smbclient -y
2. 启动服务
sudo systemctl start smb   # CentOS 7
sudo systemctl start smbd  # Ubuntu
sudo systemctl enable smb  # 开机自启

二、基础共享配置

1. 编辑配置文件 /etc/samba/smb.conf
[global]
    workgroup = WORKGROUP      # 工作组名(与Windows一致)
    server string = Samba Server %v
    security = user            # 安全模式:user(需账号密码)
    map to guest = bad user     # 匿名访问时映射为guest用户
    log file = /var/log/samba/log.%m
    max log size = 50

# 共享定义
[public]
    comment = Public Share
    path = /samba/public       # 共享目录路径
    browseable = yes           # 允许浏览
    writable = yes             # 允许写入
    public = yes               # 允许匿名访问(无需密码)
    create mask = 0777         # 文件创建默认权限
    directory mask = 0777      # 目录创建默认权限

[secure_share]
    comment = Secure User Share
    path = /samba/secure
    valid users = @smbusers    # 仅允许用户组访问
    writable = yes
    read only = no
    force group = smbusers     # 强制文件属组
    inherit permissions = yes  # 继承父目录权限
2. 创建共享目录并设置权限
sudo mkdir -p /samba/{public,secure}
sudo chmod -R 0777 /samba/public    # 匿名共享权限
sudo chmod -R 0770 /samba/secure    # 安全共享权限
sudo chown -R nobody:nobody /samba/public
sudo chown -R root:smbusers /samba/secure

三、用户与权限管理

1. 创建 Samba 用户
# 创建系统用户(可选,若需要Linux用户映射)
sudo useradd -s /sbin/nologin smbuser1

# 添加Samba用户(需输入密码)
sudo smbpasswd -a smbuser1

# 删除用户
sudo smbpasswd -x smbuser1

# 创建用户组
sudo groupadd smbusers
sudo usermod -aG smbusers smbuser1
2. 用户与组权限验证
# 查看Samba用户列表
sudo pdbedit -L

# 验证用户组权限
groups smbuser1

四、防火墙与SELinux配置

1. 开放防火墙端口
# CentOS (firewalld)
sudo firewall-cmd --permanent --add-service=samba
sudo firewall-cmd --reload

# Ubuntu (ufw)
sudo ufw allow samba
2. SELinux 上下文设置
# 设置共享目录的SELinux标签
sudo chcon -t samba_share_t /samba/public
sudo chcon -t samba_share_t /samba/secure

# 允许Samba读写(若仍受限)
sudo setsebool -P samba_export_all_rw on

五、服务重启与测试

1. 重启Samba服务
sudo systemctl restart smb
2. 本地测试共享
# 查看服务器共享列表
smbclient -L localhost -U smbuser1

# 访问安全共享
smbclient //localhost/secure_share -U smbuser1
3. Windows客户端访问
  • 打开资源管理器,输入地址 \\<Linux服务器IP>\public(匿名访问)或 \\<IP>\secure_share(需输入账号密码)。

六、高级配置场景

1. 打印机共享
[global]
    load printers = yes
    printing = cups
    printcap name = cups

[printers]
    comment = All Printers
    path = /var/spool/samba
    printable = yes
    public = no
    writable = no
    create mask = 0700
2. 多用户不同权限
[department]
    path = /samba/department
    valid users = @hr, @finance
    write list = @hr
    read list = @finance
3. 时间机器备份(macOS支持)
[TimeMachine]
    path = /samba/timemachine
    valid users = tmuser
    writable = yes
    vfs objects = fruit streams_xattr
    fruit:time machine = yes
    fruit:metadata = stream

七、常见问题排查

1. 服务无法启动
  • 检查配置文件语法
    testparm
    
  • 查看日志
    tail -f /var/log/samba/log.smbd
    
2. 客户端连接被拒绝
  • 验证防火墙和端口
    netstat -tuln | grep 445
    
  • 检查用户权限
    sudo smbpasswd -e smbuser1  # 启用已禁用用户
    
3. 文件权限冲突
  • 确保 Linux 文件系统权限与 Samba 配置一致
    ls -ld /samba/secure
    getfacl /samba/secure
    

八、总结

场景 配置要点
基础文件共享 定义 [public],匿名或用户验证
多用户权限控制 valid userswrite list
跨平台兼容性 调整 SELinux 和防火墙规则
高级功能(打印/时间机器) 集成 CUPS 或 macOS 特定参数

关键命令速查

  • 用户管理:smbpasswd -a <用户>
  • 服务控制:systemctl restart smb
  • 连接测试:smbclient -L <IP> -U <用户>

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐