6.4 samba

6.4 samba #

6.4.1 简介 #

Samba 是一个开源软件套件,用于在 Linux 和 UNIX 系统上实现文件和打印机共享。它允许 Linux/UNIX 系统与 Windows 操作系统之间进行文件和资源共享,使得 Linux/UNIX 系统可以像 Windows 一样访问和使用网络共享资源。

Samba 提供了 SMB/CIFS(Server Message Block/Common Internet File System)协议的实现,这是 Windows 操作系统中用于文件和打印机共享的标准协议。通过 Samba,Linux/UNIX 系统可以作为 SMB/CIFS 服务器或客户端,与 Windows 系统进行通信。

以下是 Samba 的一些主要特点和用途:

  1. 文件共享:Samba 允许在 Linux/UNIX 系统上共享文件和目录,并通过 SMB/CIFS 协议使其对 Windows 用户可见。这意味着 Windows 用户可以通过网络访问和操作 Linux/UNIX 系统上的共享文件。

  2. 打印机共享:Samba 还支持共享打印机,使得 Windows 用户可以通过网络连接和使用 Linux/UNIX 系统上的打印机。

  3. 用户认证和权限控制:Samba 提供了用户认证和权限控制功能,可以限制对共享资源的访问权限,确保只有经过授权的用户可以访问和修改共享文件。

  4. 集成到 Windows 域:Samba 可以作为 Windows 域控制器的替代品,提供类似于 Windows Active Directory 的用户管理和身份验证功能。

  5. 文件和打印机名称解析:Samba 支持 NetBIOS 名称解析,使得 Linux/UNIX 系统上的共享资源可以使用易记的名称进行访问,而不仅仅是 IP 地址。

6.4.2 使用 #

  1. 安装 Samba:首先,需要在 Linux/UNIX 系统上安装 Samba 软件包。具体安装方法取决于使用的发行版,可以使用包管理器进行安装,如 apt、yum 或 zypper。
yum install samba -y
  1. 配置 Samba:Samba 的主要配置文件是 smb.conf,它位于 /etc/samba/ 目录下。可以使用文本编辑器打开该文件,并根据的需求进行配置。在配置文件中,可以定义共享目录、访问权限、用户认证方式等。比如新建一个 share 共享目录,可以在 smb.conf 中新增如下配置:
[ share ]
  comment=my share
  path=/data/share
  read only=NO
  1. 创建共享目录:在配置文件中定义共享目录后,需要确保这些目录在系统上存在并具有适当的权限。可以使用命令行或文件管理器创建和设置共享目录。

  2. 启动 Samba 服务:配置完成后,需要启动 Samba 服务。在大多数 Linux 发行版中,可以使用以下命令启动 Samba 服务:

sudo systemctl start|stop smb

这将启动 SMB 服务器和 NetBIOS 名称解析服务。

  1. 访问共享资源:现在可以从 Windows 系统或其他支持 SMB/CIFS 协议的设备上访问 Linux/UNIX 系统上的共享资源。在 Windows 资源管理器中,可以使用 <Samba服务器IP地址> 或 <Samba服务器主机名> 来访问共享文件夹。如果设置了用户认证,需要提供有效的用户名和密码进行登录。
  • Linux 客户端
mount -t cifs -o username=user1 //127.0.0.1/user1 /mnt
  • Windows 客户端
    • 资源管理器访问共享
    • 映射网络驱动器

用户设置 #

  • smbpasswd 命令

    • -a 添加用户,需要有一个系统的同名用户
    • -x 删除用户
  • pdbedit

    • -L 查看用户

6.4.3 演示 #

在 smb.conf 中新增 share 共享目录:

[ share ]
  comment=my share
  path=/data/share
  read only=NO

新增系统用户和 samba 同名用户:

在 share 的 path 目录里有个 sam.txt 文件:

启动 samba 服务:

systemctl start smb

尝试用另一台机器连接 samba 服务,如果在 mount cifs 时遇到了类似这样的错误:

mount: //192.168.16.54/user1 写保护,将以只读方式挂载
mount: 无法以只读方式挂载 //192.168.16.54/user1

可以在这台机器上执行以下命令再次尝试:

yum install -y cifs-utils

现在去挂载 samba 服务:

可以看到 192.168.16.54 上的 samba 服务上的 share 已经被成功挂载了,目录也实现了映射。

当使用完成后可以使用 umount 卸载: