[DA] Can't Access public_html via FTP (Error 550 : permission denied)

พอดีวันนี้มีการย้ายข้อมูลจาก Hosting เครื่องเก่า ไปยังเครื่องใหม่ครับ ก็ทำการ Backup / Restore ตามปกติ ทุกอย่างใช้งานได้ตามปกติ
ยกเว้น FTP ครับ อาการจะประมาณว่า ไม่สามารถกดเข้า link public_html ได้
ลอง search ดู มีวิธีแก้ไข ดังนี้ครับ

cd /root
vi
fix_ftp.sh

จากนั้นก็ Copy & Paste Code ด้านล่างไปใส่ครับ

#!/bin/sh

PF=/etc/proftpd.passwd

cd /usr/local/directadmin/data/users
for u in ls; do
{
if [ ! -d $u ]; then
continue;
fi

SHADOW=/home/$u/.shadow
if [ ! -e $SHADOW ]; then
continue;
fi

#make sure it doesn’t already exist
COUNT=grep -c -e "^${u}:" $PF
if [ “$COUNT” -ne 0 ]; then
continue;
fi

UUID=id -u $u
UGID=id -g $u

echo “${u}:cat /home/$u/.shadow:${UUID}:${UGID}:system:/home/${u}:/bin/false”;

};
done;

แล้วก็เปลี่ยน permission shell script ให้เป็น 755 เพื่อให้เรียกใช้งานได้่ครับ
จากนั้นก็สั่ง

./fix_ftp.sh >> /etc/proftpd.passwd

เป็นอันจบครับ จดไว้เผื่อมีใครเจอเหมือนกัน

Ref : http://help.directadmin.com/item.php?id=205

น่าจะเป็นปัญหามาจากตอนติดตั้ง

ตอนนี้เท่าที่สังเกต เห็นอะไรผิดปกติหน่อยครับ คือ User ที่ถูก restore ใน /home จะมี owner เป็น username:access

แต่ถ้าเป็น user ที่สร้างใหม่ผ่านหน้า DA จะเป็น username:username ครับ

group access มีเพิ่มมากับ DA ซักพักละครับ เพื่อเพิ่มความปลอดภัย แต่ก็ไม่ได้ช่วยเท่าไหร่ เพราะยังไงก็ต้องให้ apache อ่านเขียนได้อยู่ดี
จริงๆถ้าติดตั้งใหม่น่าจะเป็น user:access นะ

ขอบคุณมากครับสำหรับ เทคนิคดีๆ