- در صورتی که SELinux فعال باشد ، صفحات مربوط به کاربران با پیغام خطا (forbidden) مواجه میشوند.
- راهکار ساده خاموش کردن SELinux است.
- راهکار درست اعمال تنظیمات صحیح است.
- علت به وجود آمدن این مشکل یا علت جلوگیری کردن SELinux از نمایش صفحات کاربران درون وب سرور Apache این است که پوشهی public_html یا پروندههای درون آن حاوی Context صحیح نیستند.
- به صورت معمول به ساختن یک پرونده یا پوشه درون Home Directory ، به صورت پیشفرض برای بخش Type یک Context با نام user_home_t در نظر گرفته میشود که کارکتر t به منظور Type میباشد.
- حال در صورتی که پوشهی public_html یا پروندههای درون آن دارای این Context باشند ، وب سرور Apache اجازهی دسترسی به آنها را نخواهد داشت.
- برای حل این مشکل نیاز است تا Context بخش Type از حالت پیشفرض که user_home_t میباشد به httpd_sys_content_t تغییر یابد.
- برای این منظور به صورت زیر عمل نمایید.
# chcon -R -t httpd_sys_content_t /home/user/public_html/
- نکته : با فعال بودن SELinux و اعمال تغییرات بالا ، زمانی که کاربر پروندههای دیگری درون public_html ایجاد نماید ، Context بخش Type آن پروندهها به صورت خودکار بر روی httpd_sys_content_t تنظیم خواهد شد.
- برای مشاهدهی تغییرات به صورت زیر عمل نمایید.
$ ls -dZ public_html/ drwxrwxr-x user user user_u:object_r:httpd_sys_content_t public_html/ $ ls -Z public_html/ -rw-rw-r-- user user user_u:object_r:httpd_sys_content_t index.html -rw-rw-r-- user user root:object_r:httpd_sys_content_t page.html -rw-rw-r-- user user root:object_r:httpd_sys_content_t sample.html
- تشت شده بر روی CentOS 5.8