CentOS'ta restorecon, fextext siparişini takip etmiyor


0

Dosya bağlamlarıyla denemeler yaparken garip bir davranışla karşılaştım ve bana göre bir şeyleri özlüyorum. İşte yaptığım şey:

Bir sürü dizin ve dosya oluşturun

# mkdir -p /virtual/www/cgi-bin
# touch /virtual/www/cgi-bin/script
# touch /virtual/www/webpage

Sıfırdan birkaç kural ayarlayın

# semanage fcontext -D
# semanage fcontext -a -t httpd_sys_script_exec_t '/virtual/www/cgi-bin(/.*)?'
# semanage -a -t httpd_sys_content_t '/virtual/www(/.*)?'

Dene!

# restorecon -vr /virtual
restorecon reset /virtual/www context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
restorecon reset /virtual/www/cgi-bin context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
restorecon reset /virtual/www/cgi-bin/script context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
restorecon reset /virtual/www/webpage context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0

Cgi-bin için daha özel kurallara rağmen, her dosya / dizin httpd_sys_content_t türünü alır. Ancak, cgi-bin dizinini istiyorum ve aşağıda httpd_sys_script_exec_t tipi var. Neyi yanlış yapıyorum?

CentOS 6 ve RedHat 7'de aynı sonuçla test edilmiştir.

Yanıtlar:


0

Çünkü selinux tarafından kullanılan desenler sıralanamaz (ör. .*b ile b.* ) selinux kuralları kesin olarak değil, son eklenen-son uygulamayla sıralar.

Ne yazık ki, semanage fcontext -l, kuralları, dizini bulmaya yardımcı olan, ancak birden çok eşleşen kuralı hata ayıklamanız gerekmiyorsa, basit bir dize karşılaştırmasına göre sıralar.

Aslında uygulanan sırayı

cat /etc/selinux/targeted/contexts/files/file_contexts.local

Bu yüzden önce daha genel, sonra daha belirgin olan daha genel kuralı eklemelisiniz. Ya da daha iyisi, kuralları her dosya için yalnızca bir kuralın eşleşebileceği şekilde oluşturmaya çalışın.

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.