Samba 作为跨平台文件共享方案,其配置与权限管理是运维的关键。本指南详细拆解了从安装部署、核心配置到多用户权限隔离的完整流程,提供了具体的命令和参数,帮助实现安全、高效的文件共享环境。
智能速览
安装 Samba 并确认端口服务正常运行。
通过配置文件定义共享目录与访问控制。
使用 `smbpasswd` 创建独立的访问用户与密码。
客户端通过 `cifs` 协议挂载远程共享目录。
设置 `create mask` 和 `directory mask` 控制新建文件权限。
利用 `browseable = no` 实现部门间共享目录的隐藏。
精华内容
实现安全的文件共享不仅需要搭建服务,更要精于权限划分。以下将从基础配置到部门隔离,逐步解析Samba的关键设置。
安装与启动
通过 `yum install -y samba` 命令即可完成安装。服务主要由两部分组成:`smbd` 服务监听 TCP 139 和 445 端口,负责处理文件和打印共享请求;`nmbd` 服务则监听 UDP 137 和 138 端口,用于 NetBIOS 名称解析。安装完成后,使用 `systemctl restart smb` 和 `systemctl restart nmb` 启动服务,并通过 `netstat -tunpl | grep smb` 命令可以验证端口已处于监听状态,确保服务正常运行。
配置与用户
Samba 的核心配置在于 `/etc/samba/smb.conf` 文件。在共享定义中,`path` 指定共享目录,`writeable = No` 关闭全局写权限,`write list` 则指定拥有写入权限的用户列表,如 `admin11`。
同时,`hosts allow` 参数可以限制允许访问的网段,增强安全性。访问共享的用户需要先用系统命令 `useradd` 创建系统账号,再通过 `smbpasswd -a` 设置独立的 Samba 密码并加入数据库,使用 `pdbedit -L` 可查看已添加的用户。
客户端挂载
客户端需安装 `samba-client` 和 `cifs-utils` 包。使用 `smbclient -L //服务器IP` 可列出服务器上的共享资源。
挂载操作通过 `mount -t cifs //服务器IP/共享名 /本地挂载点 -o username=用户名` 完成。为方便管理,可将挂载信息写入 `/etc/fstab`,并创建一个权限为 400 的凭证文件(如 `cred.txt`)存储用户名和密码,实现开机自动挂载,避免密码明文暴露。
权限与隔离
文件权限控制至关重要。`create mask = 0644` 和 `directory mask = 0775` 参数可以定义客户端创建的文件和文件夹的默认权限。
更严格的访问控制通过 `valid users` 实现,它能限定仅有指定用户(如 `admin11`)可以挂载该共享。在多部门场景下,为不同部门设置独立的共享块,并添加 `browseable = No` 参数,即可让各部门用户只能看到自己的共享目录,实现有效的访问隔离。
本指南系统性地梳理了 Samba 从搭建到精细化权限管理的全过程,为构建稳定可靠的内部文件共享服务提供了清晰路径。掌握这些配置,足以应对大多数企业环境的文件共享需求。你是否已经开始规划自己的共享目录了呢?