14.4.2. 웹 사이트 공유
예를 들어
/var/www/html/
디렉터리에서 웹사이트를 공유하려는 경우 samba_share_t
유형으로 파일 레이블을 지정할 수 없습니다. 이러한 경우 samba_export_all_ro
부울을 사용하여 파일 또는 디렉터리(현재 레이블이 없는 경우)를 공유하고 읽기 전용 권한 또는 samba_export_all_rw
부울을 사용하여 모든 파일 또는 디렉터리(현재 레이블이 없는 경우)를 공유하고 읽기 및 쓰기 권한을 허용합니다.
다음 예제에서는
/var/www/html/
에 웹 사이트에 대한 파일을 만든 다음 Samba를 통해 해당 파일을 공유하여 읽기 및 쓰기 권한을 허용합니다. 이 예제에서는 httpd,samba,samba-common,samba-client 및 wget 패키지가 설치되어 있다고 가정합니다.
- root 사용자로
/var/www/html/file1.html
파일을 만듭니다. 다음 콘텐츠를 복사하여 이 파일에 붙여넣습니다.<html> <h2>File being shared through the Apache HTTP Server and Samba.</h2> </html>
- 다음 명령을 입력하여
file1.html의 SELinux 컨텍스트를 확인합니다.
~]$ ls -Z /var/www/html/file1.html -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/file1.html
파일은httpd_sys_content_t
로 레이블이 지정됩니다. 기본적으로 Apache HTTP 서버는 이 유형에 액세스할 수 있지만 Samba는 이 유형에 액세스할 수 없습니다. - Apache HTTP 서버를 시작합니다.
~]# systemctl start httpd.service
- 사용자가 에 대한 쓰기 액세스 권한이 있는 디렉터리로 변경하고 다음 명령을 입력합니다. 기본 구성을 변경하지 않는 한 이 명령은 성공합니다.
~]$ wget http://localhost/file1.html Resolving localhost... 127.0.0.1 Connecting to localhost|127.0.0.1|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 84 [text/html] Saving to: `file1.html.1' 100%[=======================>] 84 --.-K/s in 0s `file1.html.1' saved [84/84]
/etc/samba/smb.conf
를 루트로 편집합니다. 이 파일의 맨 아래에 다음을 추가하여 Samba를 통해/var/www/html/
디렉토리를 공유합니다.[website] comment = Sharing a website path = /var/www/html/ public = no writable = no
/var/www/html/
디렉터리에는httpd_sys_content_t 유형으로
레이블이 지정됩니다. 기본적으로 Samba는 Linux 권한이 허용하더라도 이 유형으로 레이블이 지정된 파일과 디렉터리에 액세스할 수 없습니다. Samba 액세스를 허용하려면samba_export_all_ro
부울을 활성화합니다.~]# setsebool -P samba_export_all_ro on
재부팅 시 변경 사항이 유지되지 않도록 하려면-P
옵션을 사용하지 마십시오.samba_export_all_ro
부울을 활성화하면 Samba가 모든 유형에 액세스할 수 있습니다.- Samba 서비스를 시작합니다.
~]# systemctl start smb.service