Samba简介

Samba 是一个开源的软件套件,允许在 Linux 和 Unix 系统上实现与 Microsoft Windows 网络兼容的文件和打印服务。它允许 Linux/Unix 服务器作为 Windows 网络中的文件共享服务器,从而实现在不同操作系统之间共享文件和资源。
Samba 的主要功能包括:

  1. 文件共享:Samba 允许你将 Linux/Unix 文件系统上的目录和文件共享给 Windows 客户端。这使得 Windows 用户可以通过网络访问并操作这些文件,就像在本地计算机上一样。
  2. 打印服务:Samba 还支持在 Linux/Unix 服务器上设置打印共享,允许 Windows 用户在网络上共享打印机并打印文档。
  3. 用户认证:Samba 可以与 Windows 域控制器集成,允许用户使用 Windows 域帐户进行身份验证。这使得用户可以使用他们在 Windows 网络中的凭据来访问 Samba 共享。
  4. 组策略和访问控制:Samba 支持类似于 Windows 的组策略和权限控制。你可以设置共享级别的权限,限制用户对共享资源的访问。
  5. 安全性:Samba 支持加密和身份验证,可以确保数据在网络上传输时的安全性,并防止未经授权的访问。
  6. 命令行和图形界面工具:Samba 提供了命令行和图形界面工具,用于配置和管理共享、用户、权限等设置。
  7. 域控制器模式:Samba 还可以配置为在 Linux/Unix 系统上模拟 Windows 域控制器,允许在 Linux 上运行 Active Directory。

总的来说,Samba 是一个功能强大且灵活的工具,可以架起 Linux/Unix 与 Windows 之间的桥梁,实现文件和资源的共享。它在企业、教育机构和家庭网络中都有广泛的应用。

Samba监听端口

TCPUDP
139/445137/138
  • tcp 端口相对应的服务是 smbd 服务,其作用是提供对服务器中文件、打印资源的共享访问
  • udp 端口相对应的服务是 nmbd 服务,其作用是提供基于 NetBIOS 主机名称的解析

Samba进程

进程对应
nmbd对应 netbios
smbd对应 cifs 协议
winbindd + ldap对应 Windows AD 活动目录

Samba 用户

帐号密码
都是系统用户 /etc/passwdSamba 服务自有密码文件通过 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表示设置是否为打印机

服务器基础配置

  1. 关闭防火墙和安全策略
systemctl stop firewalld    //关闭防火墙
setenforce 0               //临时关闭selinux
  1. 安装Samba服务
yum install samba -y

Samba服务配置

  1. 配置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             //设置写入权限