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.