如今,无论是在家里还是在办公室,不同电脑之间共享文件夹已经不是什么新鲜事了。在这种趋势下,现代操作系统通过网络文件系统使计算机之间的数据交换变得简单和透明。如果您的工作环境同时有MicrosoftWindows和Linux,那么共享文件和目录的一种方法是通过跨平台网络文件共享协议:SMB/CIFS。Windows原生支持SMB/CIFS,Linux也通过开源软件Samba实现了SMB/CIFS协议。在本文中,我们将展示如何使用Samba共享文件夹。我们使用的Linux平台是Fedora或者CentOS。本文分为四个部分。首先,我们在Fedora/CentOS环境下安装Samba。接下来,我们讨论如何调整SELinux和防火墙配置以允许Samba文件共享。***我们介绍如何使用Samba共享文件夹。第1步:在Fedora和CentOS上安装Samba首先,安装Samba并进行一些基本配置。验证您的系统上是否安装了Samba:$rpm-qsambasamba-commonsamba-client如果上述命令没有输出,则表示Samba未安装。此时,应该使用以下命令来安装Samba。$sudoyuminstallsambasamba-commonsamba-client接下来,创建一个本地文件夹用于在网络上共享。此文件夹应作为Samba共享导出到远程用户。在本指南中,我们将在顶级文件夹“/”中创建此文件夹,因此请确保您具有适当的权限。$sudomkdir/shared如果你想在你的home文件夹中创建一个共享文件夹(例如~/shared),你必须在SELinux中激活Samba的home文件夹共享选项,这将在后面提到。创建/shared文件夹后,设置文件夹权限,以便其他用户可以访问它。$sudochmodo+rw/shared如果您不希望其他用户对该文件夹具有写入权限,则需要从命令中删除“w”选项。$sudochmodo+r/shared接下来,创建一个空文件进行测试。该文件可用于验证Samba共享是否已挂载。$sudotouch/shared/file1第2步:为Samba配置SELinux接下来,我们需要再次配置SELinux。SELinux在Fedora和CentOS发行版中默认启用。SELinux允许Samba只有在正确的安全配置下才能读取和修改文件或文件夹。(例如,添加“sambasharet”属性标签)。以下命令将必要的标签添加到配置文件:$sudosemanagefcontext-a-tsamba_share_t"(/.*)?"将替换为我们之前为Samba共享创建的本地文件夹(例如/shared):$sudosemanagefcontext-a-tsamba_share_t"/shared(/.*)?"我们必须执行restorecon命令来激活修改后的标签,命令如下:$sudorestorecon-R-v/shared为了通过Samba共享我们的主文件夹中的文件夹,我们必须启用共享选项SELinux中的主文件夹,默认情况下处于关闭状态。下面的命令可以达到这个效果。如果您尚未共享主文件夹,则可以跳过此步骤。$sudosetsebool-Psamba_enable_home_dirs1第三步:为Samba配置防火墙以下命令用于在防火墙中打开Samba共享所需的TCP/UDP端口。如果你使用的是firewalld(比如在Fedora和CentOS7下),下面的命令会永久修改Samba相关的防火墙规则。$sudofirewall-cmd--permanent--add-service=samba如果你在防火墙中使用了iptables(例如CentOS6或更早版本),你可以使用下面的命令打开Samba必要的出端口。$sudovi/etc/sysconfig/iptables-ARH-Firewall-1-INPUT-mstate--stateNEW-mtcp-ptcp--dport445-jACCEPT-ARH-Firewall-1-INPUT-mstate--stateNEW-mudp-pudp--dport445-jACCEPT-ARH-Firewall-1-INPUT-mstate--stateNEW-mudp-pudp--dport137-jACCEPT-ARH-Firewall-1-INPUT-mstate--stateNEW-mudp-pudp--dport138-jACCEPT-ARH-Firewall-1-INPUT-mstate--stateNEW-mtcp-ptcp--dport139-jACCEPT然后重启iptables服务:$sudoserviceiptablesrestart#p#Step4:更改Samba配置以下步骤用于配置Samba将本地文件夹导出为Samba共享文件夹。使用文件编辑器打开Samba配置文件,并将以下行添加到文件末尾。$sudonano/etc/samba/smb.conf[myshare]comment=mysharedfilespath=/sharedpublic=yeswriteable=yes上面括号中的文字(例如“myshare”)是Samba共享的资源名称,用于从远程主机访问Samba共享。创建一个Samba用户帐户,这是安装和导出Samba文件系统所必需的。我们可以使用smbpasswd工具来创建Samba用户。请注意,Samba用户帐户必须是现有的Linux用户。如果您尝试使用smbpasswd添加一个不存在的用户,它将返回一条错误消息。如果您不想使用任何现有的Linux用户作为Samba用户,您可以在您的系统上创建一个新用户。出于安全原因,将新用户的登录脚本设置为/sbin/nologin,并且不要创建用户的主文件夹。在此示例中,我们创建一个名为“sambaguest”的用户,如下所示:$sudouseradd-M-s/sbin/nologinsambaguest$sudopasswdsambaguest创建新用户后,使用smbpasswd命令添加Samba用户。当此命令要求输入密码时,您可以键入与用户密码不同的密码。$sudosmbpasswd-asambaguest激活Samba服务并检查Samba服务是否正在运行。$sudosystemctlenablesmb.service$sudosystemctlstartsmb.service$sudosystemctlis-activesmb使用以下命令查看Samba中的共享文件夹列表。$smbclient-Usambaguest-Llocalhost接下来是在Thunar文件管理器中访问Samba共享文件夹并复制file1的截图。注意Samba的共享内容可以通过Thunar中的地址smb:///myshare访问。via:http://xmodulo.com/share-directory-samba-fedora-centos.html作者:KristophorusHadiono译者:wwy-hust校对:wxy