RHCE 系列(六):安装 Samba 并配置 Firewalld 和 SELinux,和 Windows 共享文件

由于计算机很少作为一个独立的系统工作,作为一个系统管理员或工程师,就应该知道如何在有多种类型的服务器之间搭设和维护网络。

在本篇以及该系列后面的文章中,我们会介绍用 Windows/Linux 配置 Samba 和 NFS 服务器以及 Linux 客户端。

RHCE 系列第六部分 - 设置 Samba 文件共享

如果有人让你设置文件服务器用于协作或者配置很可能有多种不同类型操作系统和设备的企业环境,这篇文章就能派上用场。

由于你可以在网上找到很多关于 Samba 和 NFS 背景和技术方面的介绍,在这篇文章以及后续文章中我们就省略了这些部分直接进入到我们的主题。

步骤一: 安装 Samba 服务器

我们当前的测试环境包括两台 RHEL 7 和一台 Windows 8:


  1. 1. Samba / NFS 服务器 [box1 (RHEL 7): 192.168.0.18],
  2. 2. Samba 客户端 #1 [box2 (RHEL 7): 192.168.0.20]
  3. 3. Samba 客户端 #2 [Windows 8 machine: 192.168.0.106]

测试安装 Samba

在 box1 中安装以下软件包:


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

在 box2:


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

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

步骤二: 设置通过 Samba 进行文件共享

Samba 这么重要的原因之一是它为 SMB/CIFS 客户端(LCTT 译注:SMB 是微软和英特尔制定的一种通信协议,CIFS 是其中一个版本,更详细的介绍可以参考 Wiki)提供了文件和打印设备,这使得服务器在客户端看起来就是一个 Windows 系统(我必须承认写这篇文章的时候我有一点激动,因为这是我多年前作为一个新手 Linux 系统管理员的第一次设置)。

添加系统用户并设置权限和属性

为了允许组协作,我们会在 box1 中用 useradd 命令创建一个有两个用户(user1 和 user2)的组 finance 和目录 /finance。

我们同时会把这个目录的组所有者更改为 finance 并把权限设置为 0770(所有者和组属主可读可写可执行):


  1. # groupadd finance
  2. # useradd user1
  3. # useradd user2
  4. # usermod -a -G finance user1
  5. # usermod -a -G finance user2
  6. # mkdir /finance
  7. # chmod 0770 /finance
  8. # chgrp finance /finance

步骤三: 配置 SELinux 和 Firewalld

在配置 /finance 作为 Samba 共享目录之前,我们需要像下面那样停用 SELinux 或设置恰当的布尔值和安全选项(否则,SELinux 会阻止客户端访问共享目录):


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

另外我们必须确保 firewalld 允许 Samba 流量通过。


  1. # firewall-cmd --permanent --add-service=samba
  2. # firewall-cmd --reload

步骤四: 配置 Samba 共享目录

现在我们来看看配置文件 /etc/samba/smb.conf 并添加用于共享的章节section:我们希望组 finance 的成员可以浏览 /finance 的内容,在里面保存/创建文件或者子目录(默认权限为 0777,组所有者为 finance):

smb.conf



  1. [finance]
  2. comment=Directory for collaboration of the company's finance team
  3. browsable=yes
  4. path=/finance
  5. public=no
  6. valid users=@finance
  7. write list=@finance
  8. writeable=yes
  9. create mask=0770
  10. Force create mode=0770
  11. force group=finance

保存文件然后用 testparm 工具进行测试。如果这里有任何错误,命令的输出或提示你需要如何修复。否则,会显示你 Samba 服务器配置的回顾:

测试 Samba 配置

如果你要添加另一个公开的共享目录(意味着不需要任何验证),在 /etc/samba/smb.conf 中创建另一章节,在共享目录名称下面复制上面的章节,只需要把 public=no 更改为 public=yes 并去掉有效用户valid users和写列表write list命令。

步骤五: 添加 Samba 用户

下一步,你需要添加 user1 和 user2 作为 Samba 的用户。要做到这点,你需要用 smbpasswd 命令,它会和 Samba 的数据库进行交互。会提示你输入一个命令用于你之后和共享目录连接:


  1. # smbpasswd -a user1
  2. # smbpasswd -a user2

最后,重启 Samda,并让系统启动时自动启动该服务,确保共享目录对网络客户端可用:


  1. # systemctl start smb
  2. # systemctl enable smb
  3. # smbclient -L localhost –U user1
  4. # smbclient -L localhost –U user2

验证 Samba 共享

到这里,已经正确安装和配置了 Samba 文件服务器。现在让我们在 RHEL 7 和 Windows 8 客户端中测试该配置。

步骤六: 在 Linux 中挂载 Samba 共享

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


  1. # smbclient –L 192.168.0.18 -U user2

在 Linux 上挂载 Samba 共享

(为 user1 重复上面的命令)

正如任何其它存储介质,当你需要的时候你可以挂载(之后卸载)该网络共享:


  1. # mount //192.168.0.18/finance /media/samba -o username=user1

挂载 Samba 网络共享

(其中 /media/samba 是一个已有的目录)

或者在 /etc/fstab 文件中添加下面的条目以自动挂载:

fstab



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

其中隐藏文件 /media/samba/.smbcredentials(它的权限被设置为 600 和 root:root)有两行内容,指示允许使用共享的账户的用户名和密码:

.smbcredentials



  1. username=user1
  2. password=PasswordForUser1

最后,让我们在 /finance 中创建一个文件并检查权限和属性:


  1. # touch /media/samba/FileCreatedInRHELClient.txt

在 Samba 共享中创建文件

正如你看到的,用权限 0770 和属主 user1:finance 创建了文件。

步骤七: 在 Windows 上挂载 Samba 共享

要在 Windows 上挂载 Samba 共享,进入 ‘我的计算机’ 并选择 ‘计算机’,‘网络驱动映射’。下一步,为要映射的驱动分配一个驱动器盘符并用不同的认证身份检查是否可以连接(下面的截图使用我的母语西班牙语):

在 Windows 中挂载 Samba 共享

最后,让我们新建一个文件并检查权限和属性:

在 Windows Samba 共享中新建文件

在 Windows Samba 共享中新建文件


  1. # ls -l /finance

这次文件属于 user2,因为这是我们用于从 Windows 客户端中连接的账户。

总结

在这篇文章中我们不仅介绍了如何使用不同操作系统设置 Samba 服务器和两个客户端,也介绍了如何配置 Firewalld 和 服务器中的 SELinux 以获取所需的组协作功能。

最后,同样重要的是,我推荐阅读网上的 smb.conf man 手册 ,查看其它比本文中介绍的场景更加合适你的场景的配置命令。

本文来自合作伙伴“Linux中国”,原文发布日期:2015-10-29

时间: 2024-09-19 14:58:57

RHCE 系列(六):安装 Samba 并配置 Firewalld 和 SELinux,和 Windows 共享文件的相关文章

[Linux实用工具]Windows下同步Linux文件(Linux安装Samba和配置)

场景需求: 安装了Ubuntu在虚拟机上,但是代码编辑或者其它更多的操作的时候,还是习惯在windows下进行.如果windows下编辑完再上传到服务器,再编译执行,就太繁琐了.一次两次还好说,这编译级别上千次的,每次也需要上传的话,无疑是个人间悲剧.但是有了Samba,犹如雪中送炭啊.   安装 Ubuntu下安装比较简单,执行 # install samba samba-common 即可.当然也可以直接去官网(https://www.samba.org/)下载安装.   配置 1. 新建共

RHCE 系列(一):如何设置和测试静态网络路由

RHCE(Red Hat Certified Engineer,红帽认证工程师)是红帽公司的一个认证,红帽向企业社区贡献开源操作系统和软件,同时它还给公司提供训练.支持和咨询服务. RHCE 考试准备指南 这个 RHCE 是一个绩效考试(代号 EX300),面向那些拥有更多的技能.知识和能力的红帽企业版 Linux(RHEL)系统高级系统管理员. 重要: 获得RHCE 认证前需要先有 红帽认证系统管理员认证Red Hat Certified System Administrator,RHCSA.

Lua在windows下的安装及环境配置_Lua

环境:luafor windows (lfW) 主页:http://luaforwindows.luaforge.net/ lua for windows其实是一整套Lua的开发环境,它包括: Lua Interpreter(Lua解释器) Lua Reference Manual(Lua参考手册) Quick Lua Tour (Lua快速入门) Examples (Lua范例) Libraries with documentation (一些Lua库和文档) SciTE (一个很棒的多用途编

RHCE 系列(七):在 Linux 客户端配置基于 Kerberos 身份验证的 NFS 服务器

RHCE 系列(七):在 Linux 客户端配置基于 Kerberos 身份验证的 NFS 服务器 在本系列的前一篇文章,我们回顾了如何在可能包括多种类型操作系统的网络上配置 Samba 共享.现在,如果你需要为一组类 Unix 客户端配置文件共享,很自然的你会想到网络文件系统,或简称 NFS. RHCE 系列:第七部分 - 设置使用 Kerberos 进行身份验证的 NFS 服务器 在这篇文章中我们会介绍配置基于 Kerberos 身份验证的 NFS 共享的整个流程.假设你已经配置好了一个 N

RHCE 系列(九):如何使用无客户端配置 Postfix 邮件服务器(SMTP)

RHCE 系列(九):如何使用无客户端配置 Postfix 邮件服务器(SMTP) 尽管现在有很多在线联系方式,电子邮件仍然是一个人传递信息给远在世界尽头或办公室里坐在我们旁边的另一个人的有效方式. 下面的图描述了电子邮件从发送者发出直到信息到达接收者收件箱的传递过程. 电子邮件如何工作 要实现这一切,背后发生了好多事情.为了使电子邮件信息从一个客户端应用程序(例如 Thunderbird.Outlook,或者 web 邮件服务,例如 Gmail 或 Yahoo 邮件)投递到一个邮件服务器,并从

CentOS6.3安装samba服务并配置匿名访问方式

为了在本地测试,但环境是liunx,每次用ftp来上传,显得有点??隆S谑歉?约旱男槟庵骰?entOS6.3安装samba服务并配置匿名访问方式,这样就可以在共享里面直接用编辑器编辑了,和编辑本地文件一样.接下来看看如何简单配置samba服务器 一.CentOS6.3安装samba服务  代码如下 复制代码 yum -y install smaba 二.编辑samba配置文件   vi /etc/samba/smb.conf 1)更改用户组    代码如下 复制代码   workgroup =

RHCE 系列(十):在 RHEL/CentOS 7 中设置 NTP(网络时间协议)服务器

RHCE 系列(十):在 RHEL/CentOS 7 中设置 NTP(网络时间协议)服务器 网络时间协议 - NTP - 是运行在传输层 123 号端口的 UDP 协议,它允许计算机通过网络同步准确时间.随着时间的流逝,计算机内部时间会出现漂移,这会导致时间不一致问题,尤其是对于服务器和客户端日志文件,或者你想要复制服务器的资源或数据库. 在 CentOS 和 RHEL 7 上安装 NTP 服务器 前置要求: CentOS 7 安装过程 RHEL 安装过程 额外要求: 注册并启用 RHEL 7

xen虚拟化实战系列(六)之xen虚拟机破解密码

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://koumm.blog.51cto.com/703525/1285969 xen虚拟化实战系列文章列表 xen虚拟化实战系列(一)之xen虚拟化环境安装xen虚拟化实战系列(二)之xen虚拟机安装xen虚拟化实战系列(三)之xen虚拟机复制xen虚拟化实战系列(四)之xen虚拟机扩展磁盘空间一法xen虚拟化实战系列(五)之xen虚拟机扩展磁盘空间再一法xen虚拟化实战系列(六)之x

RHCE 系列(八):在 Apache 上使用网络安全服务(NSS)实现 HTTPS

RHCE 系列(八):在 Apache 上使用网络安全服务(NSS)实现 HTTPS 如果你是一个负责维护和确保 web 服务器安全的系统管理员,你需要花费最大的精力确保服务器中处理和通过的数据任何时候都受到保护. RHCE 系列:第八部分 - 使用网络安全服务(NSS)为 Apache 通过 TLS 实现 HTTPS 为了在客户端和服务器之间提供更安全的连接,作为 HTTP 和 SSL(Secure Sockets Layer安全套接层)或者最近称为 TLS(Transport Layer S