SELinux'un Apache ve Samba'ya aynı klasörde olmasına izin vermesini nasıl sağlayabilirim?


26

Konfigürasyonda samba ve apache'nin / var / www 'ya erişmesine izin vermek istiyorum. Setenforce değerini 0 olarak kullanmak sorunları ortadan kaldırır, böylece SELinux olduğunu biliyorum.

Ek olarak: Bir klasörün içeriğini nasıl görebilirim ve bir klasörün birden fazla içeriği olabilir mi?

(CentOS)


System-config-selinux boolean seçeneğini kullanmayı denediniz mi?

Yanıtlar:


39

Öncelikle, ls -Z kullanarak ls olan bir şeyin içeriğini görüntüleyebilirsiniz.

[root@servername www]# ls -dZ /var/www
drwxr-xr-x  root root system_u:object_r:httpd_sys_content_t /var/www

İkincisi, Samba ve Apache'ye aynı dizine erişim vermek için iki seçenek var.

Basit yol, samba'nın her yerde okuma / yazma erişimine izin vermektir:

setsebool -P samba_export_all_rw 1

Basit, kolay ve SELinux'un tuhaf özellikleriyle uğraşmaz.

Samba'nın tüm dizinlere tam erişime sahip olması ile ilgili endişeleriniz varsa ve yalnızca / var / www değiştirmek istiyorsanız, şunu deneyin:

chcon -t public_content_rw_t /var/www
setsebool -P allow_smbd_anon_write 1
setsebool -P allow_httpd_anon_write 1

Bu, hem Samba hem de Apache'nin public_content_rw_t bağlamındaki tüm dizinlere erişmesine izin verecektir. Chcon'un yalnızca / var / www'yi değiştirdiğini unutmayın. / Var / www altında oluşturulan tüm dizinler public_content_rw_t olacaktır, ancak / var / www / html veya / var / www / manual gibi dizinler mevcut değildir. Her şeyi değiştirmek istiyorsanız, chcon'a -R ekleyin:

chcon -R -t public_content_rw_t /var/www

Sen üzerinden bakabilirsiniz bu CentOS wiki sayfasından diğer SELinux'un boolelerde üzerinde ipuçları alır.


Bunu denedim ve zaten bir bağlamın tanımlandığından şikayet ediyor.
— Joshua Enfield

Haklısın, son SELinux ile uğraştığımdan beri işler değişmiş gibi görünüyor. Cevabımı diğer seçeneklerle güncelleyeceğim.
— David,

3
@Dave popomu kurtardın. Yarın işte görüşürüz.
— Joel E Salas

Web kökünüz bir samba paylaşımına yerleştirilmişse, bağlamı üst dizinlerde de ayarlamanız gerektiğini belirtmek isterim. Örneğin:chcon -t public_content_rw_t /mnt/share/webroot(/.*)? chcon -t public_content_rw_t /mnt/share
— Greg Sheremeta,

1
Teşekkür ederim, benzer bir şeyle mücadele ediyorum ama ftp ile ve her şey yaptıktan sonra çalışıyorsetsebool -P ftpd_full_access=1
— giorgiline

9
SHARING FILES
   If you want to share files with multiple domains (Apache,  FTP,  rsync,
   Samba),  you can set a file context of public_content_t and public_content_rw_t.
   These context allow any of the above domains  to  read  the
   content.   If  you want a particular domain to write to the public_con‐
   tent_rw_t   domain,   you   must   set   the    appropriate    boolean.
   allow_DOMAIN_anon_write.  So for samba you would execute:

       setsebool -P allow_smbd_anon_write=1

Örneğin:

semanage fcontext -a -t public_content_rw_t '/var/www(/.*)?'
restorecon -R /var/www
setsebool -P allow_smbd_anon_write 1
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.