11.3.1. Samba and SELinux
When SELinux is enabled, the Samba server (smbd
) runs confined by default. Confined services run in their own domains, and are separated from other confined services. The following example demonstrates the smbd
process running in its own domain. This example assumes the samba package is installed:
Run getenforce
to confirm SELinux is running in enforcing mode:
$ getenforce
Enforcing
The getenforce
command returns Enforcing
when SELinux is running in enforcing mode.
Run service smbd start
as the root user to start smbd
:
service smb start
Starting SMB services: [ OK ]
Run ps -eZ | grep smb
to view the smbd
processes:
$ ps -eZ | grep smb
unconfined_u:system_r:smbd_t:s0 16420 ? 00:00:00 smbd
unconfined_u:system_r:smbd_t:s0 16422 ? 00:00:00 smbd
The SELinux context associated with the smbd
processes is unconfined_u:system_r:smbd_t:s0
. The second last part of the context, smbd_t
, is the type. A type defines a domain for processes and a type for files. In this case, the smbd
processes are running in the smbd_t domain.
Files must be labeled correctly to allow smbd
to access and share them. For example, smbd
can read and write to files labeled with the samba_share_t
type, but by default, can not access files labeled with the httpd_sys_content_t
type, which is intended for use by the Apache HTTP Server. Booleans must be turned on to allow certain behavior, such as allowing home directories and NFS file systems to be exported through Samba, as well as to allow Samba to act as a domain controller.