第 14 章 Samba
Samba 是服务器消息块(SMB)和通用 Internet 文件系统(CIFS)协议的开源实施,跨各种操作系统在客户端之间提供文件和打印服务。[15]
在 Red Hat Enterprise Linux 中,samba 软件包提供 Samba 服务器。输入以下命令查看是否安装了 samba 软件包:
rpm -q samba package samba is not installed
~]$ rpm -q samba
package samba is not installed
如果没有安装它,且您想要使用 Samba,以 root 用户身份使用
yum 工具来安装它:
yum install samba
~]# yum install samba
14.1. Samba 和 SELinux 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
启用 SELinux 时,Samba 服务器(
smbd)默认运行限制。受限制的服务在自己的域中运行,与其他受限服务分离。以下示例演示了在其自己的域中运行的 smbd 进程。本例假设安装了 samba 软件包:
- 运行 getenforce 命令,确认 SELinux 是否在 enforcing 模式下运行:
getenforce Enforcing
~]$ getenforce EnforcingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 当 SELinux 处于 enforcing 模式时,命令会返回Enforcing。 - 以 root 用户身份输入以下命令以启动
smbd:systemctl start smb.service
~]# systemctl start smb.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确认 服务正在运行。输出中应包括以下信息(只有时间戳有所不同):systemctl status smb.service smb.service - Samba SMB Daemon Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled) Active: active (running) since Mon 2013-08-05 12:17:26 CEST; 2h 22min ago
~]# systemctl status smb.service smb.service - Samba SMB Daemon Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled) Active: active (running) since Mon 2013-08-05 12:17:26 CEST; 2h 22min agoCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 要查看
smbd进程,请执行以下命令:ps -eZ | grep smb system_u:system_r:smbd_t:s0 9653 ? 00:00:00 smbd system_u:system_r:smbd_t:s0 9654? 00:00:00 smbd
~]$ ps -eZ | grep smb system_u:system_r:smbd_t:s0 9653 ? 00:00:00 smbd system_u:system_r:smbd_t:s0 9654? 00:00:00 smbdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 与smbd进程关联的 SELinux 上下文为system_u:system_r:smbd_t:s0。上下文的第二个最后一个部分smbd_t是类型。类型定义进程的域以及文件的类型。在这种情况下,smbd进程在smbd_t域中运行。
文件必须正确标记,以允许
smbd 访问和共享它们。例如,smbd 可以读取和写入使用 samba_share_t 类型标记的文件,但默认情况下,无法访问使用 httpd_sys_content_t 类型标记的文件,该类型旨在由 Apache HTTP 服务器使用。必须启用布尔值以允许某些行为,例如允许通过 Samba 导出主目录和 NFS 卷,以及允许 Samba 充当域控制器。