Files
justice/www/html/Game/public/trycss/game-justic2/server/FTP-530-FIX.md
T
2026-05-27 04:30:21 +00:00

2.6 KiB

แก้ FTP 530 Login incorrect (user ftpweb)

ต้อง เข้าเซิร์ฟเวอร์ผ่าน SSH ก่อน (ไม่ใช่ FTP) แล้วรันคำสั่งด้านล่าง


ขั้นที่ 1: ตั้งรหัสผ่านใหม่

sudo passwd ftpweb

ใส่รหัสผ่านใหม่ 2 ครั้ง แล้วลองเข้า FTP อีกครั้งด้วยรหัสนี้


ขั้นที่ 2: ถ้ายัง 530 — เช็ค shell

vsftpd ใช้ shell ของ user ต้องอยู่ใน /etc/shells ถึงจะให้ login ได้ (แม้เป็น nologin):

# ดู shell ของ ftpweb
getent passwd ftpweb
# ตัวอย่างได้: ftpweb:x:1001:1001::/var/www/html:/usr/sbin/nologin

# ถ้า shell คือ /usr/sbin/nologin ให้เพิ่มใน /etc/shells
grep -qFx '/usr/sbin/nologin' /etc/shells || echo '/usr/sbin/nologin' | sudo tee -a /etc/shells

จากนั้นรีสตาร์ท vsftpd:

sudo systemctl restart vsftpd

ขั้นที่ 3: ถ้าใช้ userlist (อนุญาตเฉพาะ user ในรายการ)

ถ้าใน config มี userlist_enable=YES และ userlist_deny=YES แปลว่า “อนุญาตเฉพาะ user ที่อยู่ในไฟล์” — ต้องใส่ ftpweb ในไฟล์นั้น:

# ดูว่าใช้ไฟล์ไหน
grep userlist /etc/vsftpd.conf /etc/vsftpd/*.conf 2>/dev/null

# ตัวอย่าง: ใส่ ftpweb ในรายการที่อนุญาต (ชื่อไฟล์อาจเป็น user_list หรือ vsftpd.userlist)
echo ftpweb | sudo tee -a /etc/vsftpd.userlist
# หรือ
echo ftpweb | sudo tee -a /etc/vsftpd/user_list
sudo systemctl restart vsftpd

ขั้นที่ 4: สร้าง user ใหม่ถ้าไม่มี ftpweb

sudo useradd -m -d /var/www/html -s /usr/sbin/nologin ftpweb
echo '/usr/sbin/nologin' | sudo tee -a /etc/shells
sudo passwd ftpweb
sudo systemctl restart vsftpd

สรุปคำสั่งรวดเดียว (ถ้ามี user ftpweb อยู่แล้ว)

echo '/usr/sbin/nologin' | sudo tee -a /etc/shells
sudo passwd ftpweb
sudo systemctl restart vsftpd

จากนั้นลองเข้า FTP ใหม่ด้วย user: ftpweb และ รหัสที่ตั้งด้วย passwd