Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

14장. Samba

Samba는SMB(서버 메시지 블록) 및CIFS(Common Internet File System) 프로토콜의 오픈 소스 구현으로, 다양한 운영 체제에서 클라이언트 간에 파일 및 인쇄 서비스를 제공합니다.[15]
Red Hat Enterprise Linux에서 samba 패키지는 Samba 서버를 제공합니다. 다음 명령을 입력하여 samba 패키지가 설치되어 있는지 확인합니다.
~]$ rpm -q samba
package samba is not installed
설치되어 있지 않고 Samba를 사용하려면 yum 유틸리티를 root 사용자로 사용하여 설치합니다.
~]# yum install samba

14.1. Samba 및 SELinux

SELinux가 활성화되면 기본적으로 Samba 서버(smbd)가 제한된 실행됩니다. 제한된 서비스는 자체 도메인에서 실행되며 다른 제한된 서비스와 분리됩니다. 다음 예제에서는 자체 도메인에서 실행되는 smbd 프로세스를 보여줍니다. 이 예제에서는 samba 패키지가 설치되어 있다고 가정합니다.
  1. getenforce 명령을 실행하여 SELinux가 강제 모드로 실행 중인지 확인합니다.
    ~]$ getenforce
    Enforcing
    
    명령은 SELinux가 강제 모드에서 실행 중일 때 Enforcing (강제)을 반환합니다.
  2. root로 다음 명령을 입력하여 smbd 를 시작합니다.
    ~]# systemctl start smb.service
    서비스가 실행 중인지 확인합니다. 출력에는 아래 정보가 포함되어야 합니다(시간 스탬프만 다릅니다).
    ~]# 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
    
  3. 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
    
    smbd 프로세스와 연결된 SELinux 컨텍스트는 system_u:system_r:smbd_t:s0입니다. 컨텍스트의 마지막 부분인 smbd_t 는 유형입니다. 유형은 프로세스 및 파일의 유형에 대한 도메인을 정의합니다. 이 경우 smbd 프로세스는 smbd_t 도메인에서 실행됩니다.
smbd 가 파일에 액세스하고 공유할 수 있도록 파일에 올바르게 레이블이 지정되어야 합니다. 예를 들어 smbdsamba_share_t 유형으로 레이블이 지정된 파일에 읽고 쓸 수 있지만 기본적으로 Apache HTTP 서버에서 사용하기 위한 httpd_sys_content_t 유형으로 레이블이 지정된 파일에 액세스할 수 없습니다. 홈 디렉터리 및 NFS 볼륨을 Samba를 통해 내보내고 Samba가 도메인 컨트롤러 역할을 허용하는 등의 특정 동작을 허용하려면 부울을 활성화해야 합니다.