当前位置: 首页 > web >正文

在 Ubuntu 中配置 Samba 实现「特定用户可写,其他用户只读」的共享目录

需求目标

  • 所有认证用户可访问 Samba 共享目录 /path/to/home
  • **仅特定用户(如 developer)**拥有写权限;
  • 其他用户仅允许读取;
  • 禁止匿名访问

配置步骤

1. 设置文件系统权限

将目录 /home3/guest 的所有权设为 developer 用户和所属组,并设置权限:

sudo chown -R developer:developer /path/to/home
sudo chmod -R 755 /path/to/home
  • 755 权限:
    • 所有者(developer)可读写执行;
    • 其他用户仅可读和执行。

说明:此配置确保文件系统权限与 Samba 配置一致,避免权限冲突。


2. 配置 Samba 共享目录

编辑 Samba 配置文件(通常位于 /etc/samba/smb.conf),添加以下内容:

[public]
path = /path/to/home
public = no
browseable = yes
writable = no
write list = developer
create mask = 0644
directory mask = 0755
配置参数详解
参数作用
path共享目录的物理路径
public = no禁止匿名访问
browseable = yes允许用户浏览目录
writable = no默认所有用户不可写
write list = developerdeveloper 用户可写
create mask = 0644新建文件的权限(所有者可读写,其他用户只读)
directory mask = 0755新建目录的权限(所有者可读写执行,其他用户只读执行)

3. 重启 Samba 服务

应用配置更改:

sudo systemctl restart smbd

关键原理说明

1. Samba 的默认行为

  • 未设置 valid users:Samba 默认允许所有认证用户访问共享目录;
  • writable = no + write list:通过白名单控制写权限,避免手动维护 valid users 列表。

2. 权限优先级

  • Samba 配置 > 文件系统权限:即使文件系统允许组写入(如 755),Samba 的 writable = nowrite list 会覆盖这一限制,确保仅白名单用户可写。

3. 安全性设计

  • 禁止匿名访问:通过 public = no 和全局默认配置 map to guest = Bad User 实现;
  • 最小权限原则:默认只读,通过白名单授予写权限。

注意事项

1. 配置一致性

  • 确保文件系统权限与 Samba 配置一致,避免权限冲突。
  • 若发现权限异常,检查 Samba 日志:/var/log/samba/smbd.log

2. 扩展场景

  • 限制特定用户组访问
    添加 valid users = @group_name 限制仅某组用户可访问;
  • 更细粒度控制
    使用 ACL(setfacl)实现更复杂的权限管理。

总结

通过上述配置,你可以实现:

  • 所有认证用户可读共享目录;
  • 仅特定用户(如 developer 可写;
  • 无需频繁维护用户列表,适应用户频繁变动的场景;
  • 安全可控,避免匿名访问和权限泄露风险。

此方案适用于开发团队协作、自动化构建目录等场景,确保数据安全的同时提升协作效率。

http://www.xdnf.cn/news/4367.html

相关文章:

  • SAP如何反查增强点的位置呢?怎么判断这个报错是增强,还是标准信息呢?
  • Postman最佳平替, API测试工具Bruno实用教程(一):基础篇
  • (2025,AR,NAR,GAN,Diffusion,模型对比,数据集,评估指标,性能对比)文本到图像的生成和编辑:综述
  • 2025年渗透测试面试题总结-网络安全、Web安全、渗透测试笔试总结(一)(附回答)(题目+回答)
  • 大模型工具与案例:云服务器部署dify(1)
  • 不同OS版本中的同一yum源yum list差异排查思路
  • Unity垃圾回收(GC)
  • 项目模拟实现消息队列第二天
  • Compose Multiplatform iOS 稳定版发布:可用于生产环境,并支持 hotload
  • C++命名空间、内联与捕获
  • linux环境安装docker
  • AI一键替换商品融入场景,5分钟打造专业级商品图
  • 自编码器(Autoencoder)
  • 遥感数据处理、机器学习建模与空间预测的全流程指南——涵盖R语言(随机森林、XGBoost、SVM等)、特征提取、模型优化及生态学案例分析
  • Ubuntu日志文件清空的三种方式
  • 力扣49. 字母异位词分组(哈希表)
  • suna界面实现原理分析(三):Terminal工具调用可视化
  • 强化学习是AI Agent的进化引擎还是技术枷锁呢?
  • ​Spring + Shiro 整合的核心要点及详细实现说明
  • vLLM 推理 Qwen2.5-VL-7B 视频
  • 2025最新vmware-17虚拟机安装教程(保姆级,图文讲解,带安装包)
  • 餐饮加盟店如何通过日事清全流程闭环管理实现进度同步与效率升级?
  • 强化学习策略梯度推导
  • 漏洞检测服务费用受哪些因素制约?费用区间是多少?
  • 蓝肽子序列--字符串+最长子序列的dp
  • 从零开始学java--集合类(2)
  • 职业短线交易系统
  • SAM详解2(初级应用)
  • Python入门(一)
  • 数字人驱动方向最新顶会期刊论文收集整理 | AAAI 2025