mod_ruid2 ตัดปัญหา chmod 777

ทำตามนี้นะครับ

yum -y install libcap-devel
cd /root
wget -O mod_ruid2-0.9.8.tar.bz2 “http://sourceforge.net/projects/mod-ruid/files/mod_ruid2/mod_ruid2-0.9.8.tar.bz2/download”
tar xjf mod_ruid2-0.9.8.tar.bz2
cd mod_ruid2-0.9.8
apxs -a -i -l cap -c mod_ruid2.c

จากนั้น

cd /usr/local/directadmin/data/templates/
cp virtual_host2* custom/
chown -R diradmin:diradmin custom/
echo “action=rewrite&value=httpd” >> /usr/local/directadmin/data/task.queue
/usr/local/directadmin/dataskq d800

ทีนี้ เราลองเช็คดูครับว่า httpd โหลดมอดูลเข้าไปแล้วหรือยัง ด้วยคำสั่ง

grep ‘mod_ruid2’ /etc/httpd/conf/httpd.conf

ถ้าใช้ได้ จะเจอประมาณนี้เป็น output ครับ

LoadModule ruid2_module /usr/lib/apache/mod_ruid2.so

แล้วต่อด้วยคำสั่ง

chown -R webapps:webapps /var/www/html

เพื่อให้ เมลกระรอก,roundcube และ phpmyadmin ใช้งานได้
และแก้ไข httpd config นิดหน่อยครับ

เปิดไฟล์ /etc/httpd/httpd.conf แล้วเพิ่มตัวหนาลงไปในคอนฟิคส่วนนี้ครับ

(ถ้าไม่เจอ จะอยู่ใน /etc/httpd/conf/extra/httpd-directories.conf)

<Directory “/var/www/html”>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
<IfModule mod_suphp.c>
suPHP_Engine On
suPHP_UserGroup webapps webapps
</IfModule>
RUidGid webapps webapps
</Directory>

แล้ว RESTART HTTPD หนึ่งที เป็นอันเสร็จพิธี ทีนี้ลองสร้าง user ขึ้นมาเทสครับ ลงพวก CMS อะไรก็ได้ที่ require 777 chmod มันจะไม่ require อีกต่อไปแล้ว

ทีนี้ในระบบเก่าคุณอาจจะมี user ที่มีไฟล์เป้น owner apache อยู่ มันอาจจะมีปัญหา ให้แก้ด้วยสคริปตามบรรทัดด้านล่างได้เลยครับ
สคริปต์จะเข้าไปเช็ค permission และแก้ไขทั้งหมดให้เป็น permission ของ user ไม่ world-readable อีกต่อไป
**** ก่อนรันคุณต้องมั่นใจว่าทำตัวหนาด้านบนผ่านแล้วนะครับ ไม่งั้นละก็ คุณรับโทรศัพท์สนุกแน่ครับ ****

cd /usr/local/directadmin/scripts && ./set_permissions.sh user_homes
find /home/*/domains/*/public_html -type d -print0 | xargs -0 chmod 755
find /home/*/domains/*/public_html -type f -print0 | xargs -0 chmod 644
find /home/*/domains/*/public_html -type f -name ‘*.cgi*’ -exec chmod 755 {} \;
find /home/*/domains/*/public_html -type f -name ‘*.pl*’ -exec chmod 755 {} \;
find /home/*/domains/*/public_html -type f -name ‘*.pm*’ -exec chmod 755 {} \;
cd /usr/local/directadmin/data/users && for i in `ls`; do { chown -R $i:$i /home/$i/domains/*/public_html;}; done;

ที่มา

 Thaihosttalk && Host4Pro