使用Samba协议与windows共享文件夹
本篇,咱们一起学习如何在CentOS和Windows系统之间使用Samba协议进行共享文件夹。像NFS一样,Windows共享也是一个远端目录,客户端可以挂载并用来存储文件。Samba是一个服务,能够读懂Windows的SMB协议,因此,我们可以export目录,然后在Windows客户端里进行挂载。
准备
准备一个有工作网络的CentOS系统。需要管理员root权限。
在配置Samba的时候,需要知道Windows工作组信息。在我们开始前,我们在Windows系统里面,使用net config workstation命令,并且记录下工作域的值:
命令显示了工作组合域信息
步骤
跟随下面的步骤,设置Samba共享目录,然后使用Windows客户端挂载:
- 安装samba软件包:
yum install samba
- 为Samba用户创建一个固定的组:
groupadd smbgroup
- 创建一个共享目录。设置文件夹属性:
mkdir -m 770 /var/sambasharechgrp smbgroup /var/sambashare
- 打开Samba配置文件:
vi /etc/samba/smb.conf
- 修改workgroup参数在Global栏目下。随便看看其他的参数,每一个都有详细的说明:
Workgroup = WORKGROUP
- 在配置文件的最后,加入如下信息:
[share]path = /var/sambashareguest ok = novalid users = @smbgroupwritable = yes create mask = 0755
- 保存并退出。
- 开启必要的服务:
systemctl start smb nmbsystemctl enable smb nmb
- 开放防火墙端口:
firewall-cmd --permanent --zone public --add-service sambafirewall-cmd --reload
- 为每个需要访问共享文件夹的用户新建用户,并加入到smbgroup组:
usermod -a -G smbgroup tboronczyksmbpasswd -a tboronczyk
它是如何工作的
在本文中,砸门学习了如何安装和配置Samba,来共享一个文件夹,让windows客户端可以访问。
我们首先使用 net config 命令进行了一些研究, 以发现我们的客户端所属的 Windows 工作组。这一点很重要, 因为同一网络上的两个系统, 但将自己标识为不同工作组的一部分, 将无法相互通信。在该示例中, 工作组的名称只是工作组。
接下来, 我们安装了桑巴包, 并创建了一个名为 smbgroup 的特殊组。我们将配置 Samba, 以便 CentOS 系统上的任何用户帐户都能够访问共享, 只要它已分配给 smbgroup 组。然后, 我们创建了将共享的目录, 并将其组所有权设置为新组。
然后, 我们编辑了 Samba 的配置文件, 指定了前面查找的工作组值的 Windows 工作组的名称, 并添加了一个部分来定义新共享。我们限制了共享, 以便只有属于 smbgroup 的经过身份验证的用户才能通过将来宾确定设置为 "没有" 和 "有效用户" 来访问共享, 从而 @smbgroup。可写条目允许用户创建和更新共享上的文件 (否则这些文件将是只读的), 并且创建掩码条目用于指定将在 Linux 文件系统中分配新文件的默认文件权限。括号中的名称共享不仅启动该配置部分, 而且还可用作共享将作为 (即 192.168.56.100share) 导出的名称。只要每个名称都是不同的, 就可以导出多个共享。
对于将用于连接到共享的每个用户帐户, 我们确保它属于 smbgroup, 并使用 smbpasswd 命令指定该帐户将用于验证其 SMB 会话的密码。此密码与系统的凭据分开维护, 仅对 Samba 进行身份验证有效, 因此应选择与帐户的登录密码不同的密码。
管理 Samba 用户是使用 smbpasswd 完成的。-A 标志在 Samba 的帐户数据库中添加一个条目, 我们可以使用-x 标志从数据库中删除用户:
smbpasswd -x tboronczyk
在 Windows 系统上, 可以使用 "使用网络" 命令将远程共享映射到驱动器号。映射后, 驱动器将显示在可用驱动器列表中:
net use Z: 192.168.56.100share /USER:tboronczyk
或者, 您也可以通过 Windows GUI 映射驱动器, 通过计算机导航地图网络驱动器在选择此电脑书签时, 在文件资源管理器中映射网络驱动器:
Samba 共享可作为网络映射驱动器使用
See also
For more information on working with Samba, refer to the following resources:
- The smb.conf manual page (man 5 smb.conf)
- Using Samba on CentOS With Windows 7/8 (https://rcollier.me/2013/07/30/using-samba-on-centos-with-windows-78/)
- Install And Configure Samba Server In CentOS 7 (http://www.unixmen.com/install-configure-samba-server-centos-7)