Samba简介
Samba 是一个开源的软件套件,允许在 Linux 和 Unix 系统上实现与 Microsoft Windows 网络兼容的文件和打印服务。它允许 Linux/Unix 服务器作为 Windows 网络中的文件共享服务器,从而实现在不同操作系统之间共享文件和资源。
Samba 的主要功能包括:
- 文件共享:Samba 允许你将 Linux/Unix 文件系统上的目录和文件共享给 Windows 客户端。这使得 Windows 用户可以通过网络访问并操作这些文件,就像在本地计算机上一样。
- 打印服务:Samba 还支持在 Linux/Unix 服务器上设置打印共享,允许 Windows 用户在网络上共享打印机并打印文档。
- 用户认证:Samba 可以与 Windows 域控制器集成,允许用户使用 Windows 域帐户进行身份验证。这使得用户可以使用他们在 Windows 网络中的凭据来访问 Samba 共享。
- 组策略和访问控制:Samba 支持类似于 Windows 的组策略和权限控制。你可以设置共享级别的权限,限制用户对共享资源的访问。
- 安全性:Samba 支持加密和身份验证,可以确保数据在网络上传输时的安全性,并防止未经授权的访问。
- 命令行和图形界面工具:Samba 提供了命令行和图形界面工具,用于配置和管理共享、用户、权限等设置。
- 域控制器模式:Samba 还可以配置为在 Linux/Unix 系统上模拟 Windows 域控制器,允许在 Linux 上运行 Active Directory。
总的来说,Samba 是一个功能强大且灵活的工具,可以架起 Linux/Unix 与 Windows 之间的桥梁,实现文件和资源的共享。它在企业、教育机构和家庭网络中都有广泛的应用。
Samba监听端口
- tcp 端口相对应的服务是 smbd 服务,其作用是提供对服务器中文件、打印资源的共享访问
- udp 端口相对应的服务是 nmbd 服务,其作用是提供基于 NetBIOS 主机名称的解析
Samba进程
| 进程 | 对应 |
|---|
| nmbd | 对应 netbios |
| smbd | 对应 cifs 协议 |
| winbindd + ldap | 对应 Windows AD 活动目录 |
Samba 用户
| 帐号 | 密码 |
|---|
| 都是系统用户 /etc/passwd | Samba 服务自有密码文件通过 smbpasswd -a USERNAME 命令设置 |
配置文件常用参数
| 参数 | 作用 |
|---|
| workgroup | 表示设置工作组名称 |
| server string | 表示描述 samba 服务器 |
| security | 表示设置安全级别,其值可为 share、user、server、domain |
| passdb backend | 表示设置共享帐户文件的类型,其值可为 tdbsam(tdb数据库文件)、ldapsam(LDAP目录认证)、smbpasswd(兼容旧版本 samba 密码文件) |
| comment | 表示设置对应共享目录的注释,说明信息,即文件共享名 |
| browseable | 表示设置共享是否可见 |
| writable | 表示设置目录是否可写 |
| path | 表示共享目录的路径 |
| guest ok | 表示设置是否所有人均可访问共享目录 |
| public | 表示设置是否允许匿名用户访问 |
| write list | 表示设置允许写的用户和组,组要用 @ 表示,例如 write list = root,@root |
| valid users | 设置可以访问的用户和组,例如 valid users = root,@root |
| hosts deny | 设置拒绝哪台主机访问,例如 hosts deny = 192.168.48.100 |
| hosts allow | 设置允许哪台主机访问,例如 hosts allow = 192.168.48.200 |
| printable | 表示设置是否为打印机 |
服务器基础配置
- 关闭防火墙和安全策略
systemctl stop firewalld //关闭防火墙
setenforce 0 //临时关闭selinux
- 安装Samba服务
yum install samba -y
Samba服务配置
- 配置samba服务配置文件信息
cd /etc/samba //切换至samba配置文件目录
mv smb.conf smb.conf.bak //备份samba配置文件
grep -v "#" smb.conf.bak > smb.conf //重新创建去除注释的配置文件
vim smb.conf //修改配置文件
[test] //添加共享文件目录
path=/home/test //共享路径
public=yes //设置公开访问
browseable=yes //设置共享可见
writable=yes //设置写入权限