设置Samba并配置FirewallD和SELinux以允许在Linux / Windows客户端上共享文件 - 第6部分

在本文中,我们将通过设置Samba服务器并配置Firewalld和SELinux以允许在Linux / Windows客户端上分别进行文件共享

由于计算机很少作为隔离系统工作,因此作为系统管理员或工程师,您应该知道如何设置和维护具有多种类型服务器的网络。

在这篇文章中,并在接下来的这个系列,我们将通过与Windows / Linux和Linux客户端,分别设置SambaNFS服务器的要领。

在Linux上设置Samba文件共享

RHCE:安装Samba文件共享 - 第6部分

如果您被要求在企业或企业环境中设置文件服务器,您可能会找到不同的操作系统和类型的设备,这篇文章肯定会派上用场。

因为你可以阅读关于Samba和NFS的背景和技术方面,在这篇文章和下一篇,我们将切入正确的chase与手头的主题。

第1步:安装Samba服务器

我们目前的测试环境包括两RHEL 7箱和一台Windows 8设备,顺序:

1. Samba / NFS server [box1 (RHEL 7): 192.168.0.18], 
2. Samba client #1 [box2 (RHEL 7): 192.168.0.20]
3. Samba client #2 [Windows 8 machine: 192.168.0.106]
测试Samba的设置

测试Samba的设置

BOX1,安装以下软件包:

# yum update && yum install samba samba-client samba-common

BOX2:

# yum update && yum install samba samba-client samba-common cifs-utils

安装完成后,我们就可以配置我们的共享了。

第2步:通过Samba设置文件共享

其中一个原因Samba是那么重要的原因是因为它的SMB / CIFS客户端,这将导致这些客户端查看服务器,如果它是一个Windows系统提供文件和打印服务(我必须承认,我往往会得到一点点的情感,而写这个主题,因为它是我第一次设置为一个新的Linux系统管理员几年前)。

添加系统用户并设置权限和所有权

为了让团体的合作,我们将创建一个名为金融与两个用户(user1user2)与组useradd命令 ,并在BOX1目录/融资

我们也将改变这个目录的组所有者资助 ,并设置其权限0770(读,写,并为所有者和组所有者执行权限):

# groupadd finance
# useradd user1
# useradd user2
# usermod -a -G finance user1
# usermod -a -G finance user2
# mkdir /finance
# chmod 0770 /finance
# chgrp finance /finance

第3步:配置SELinux和Firewalld

在准备配置/金融为Samba共享,我们将需要或者禁用SELinux或如下(否则,将SELinux的阻止客户端访问共享)设置适当的布尔和安全上下文值:

# setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
# getsebool –a | grep samba_export
# semanage fcontext –at samba_share_t "/finance(/.*)?"
# restorecon /finance

此外,我们必须确保Samba流量通过允许firewalld

# firewall-cmd --permanent --add-service=samba
# firewall-cmd --reload

第4步:配置Samba共享

现在是时候潜入配置文件/etc/samba/smb.conf中 ,并添加部分的份额:我们希望金融集团的成员能够浏览的/融资的内容,并保存/创建文件或子目录它(默认情况下将有自己的权限位设置为0770, 金融将是他们的小组所有者):

smb.conf
[finance]
comment=Directory for collaboration of the company's finance team
browsable=yes
path=/finance
public=no
valid users=@finance
write list=@finance
writeable=yes
create mask=0770
Force create mode=0770
force group=finance

保存文件,然后用testparm实用工具进行测试。 如果有任何错误,以下命令的输出将指示您需要修复。 否则,它将显示对Samba服务器配置的检查:

测试Samba配置

测试Samba配置

如果您想添加一个份额是向公众开放(不用任何身份验证之意),创建/etc/samba/smb.conf文件 ,并根据新的共享的名称复制上面的部分中的另一部分,只有改变公众=否 公共= yes并且不包括有效用户和写入列表指令。

第5步:添加Samba用户

接下来,您将需要添加user1user2为Samba用户。 要做到这一点,您将使用smbpasswd命令,这与Samba的内部数据库进行交互。 系统将提示您输入稍后将用于连接到共享的密码:

# smbpasswd -a user1
# smbpasswd -a user2

最后,重新启动Samba ,启用该服务在引导时启动,并确保份额实际可用的网络客户端:

# systemctl start smb
# systemctl enable smb
# smbclient -L localhost –U user1
# smbclient -L localhost –U user2
验证Samba共享

验证Samba共享

此时,Samba文件服务器已正确安装和配置。 现在是时候来测试我们的RHEL 7Windows 8的客户端此设置。

第6步:在Linux中安装Samba共享

首先,确保可以从此客户端访问Samba共享:

# smbclient –L 192.168.0.18 -U user2
安装Samba在Linux上分享

安装Samba在Linux上分享

(对user1重复上述命令)

与任何其他存储介质一样,您可以在需要时挂载(并稍后卸载)此网络共享:

# mount //192.168.0.18/finance /media/samba -o username=user1
登录Samba网络共享

登录Samba网络共享

(这里的/媒体/ Samba是一个存在的目录)

或永久,加入在/ etc / fstab文件如下条目:

fstab
//192.168.0.18/finance /media/samba cifs credentials=/media/samba/.smbcredentials,defaults 0 0

凡隐藏文件/media/samba/.smbcredentials(其权限和所有权已设置为600根:根 ,分别)包含两行表明被允许使用共享的帐户的用户名和密码:

.smbcredentials
username=user1
password=PasswordForUser1

最后,让我们来创建内部/财务文件,检查权限和所有权:

# touch /media/samba/FileCreatedInRHELClient.txt
在Samba共享中创建文件

在Samba共享中创建文件

金融:正如你所看到的,文件是用0770权限和所有权设置为user1创建。

第7步:在Windows中安装Samba共享

要安装Windows中的Samba共享,进入我的电脑 ,选择计算机 ,然后映射网络驱动器。 接下来,为要映射的驱动器分配一个字母,然后选择使用不同凭据连接(下面的屏幕截图是西班牙语,我的母语):

在Windows中安装Samba共享

在Windows中安装Samba共享

最后,让我们创建一个文件并检查权限和所有权:

在Samba共享上创建文件

在Samba共享上创建文件

# ls -l /finance

这一次的文件属于自认为的user2是我们用于从Windows客户端连接的帐户。

概要

在这篇文章中,我们已经解释不仅是如何建立一个Samba服务器和两个客户端使用不同的操作系统,而且还如何配置firewalld ,并在服务器上的SELinux允许所需的组协作功能。

最后,但并非最不重要的,让我推荐网上的阅读smb.conf的手册页探索其他配置指令可能更适合你的情况比在这篇文章中描述的场景。

和往常一样,如果您有任何意见或建议,随时可以使用下面的表格发表评论。