# แก้ FTP 530 Login incorrect (user ftpweb) ต้อง **เข้าเซิร์ฟเวอร์ผ่าน SSH** ก่อน (ไม่ใช่ FTP) แล้วรันคำสั่งด้านล่าง --- ## ขั้นที่ 1: ตั้งรหัสผ่านใหม่ ```bash sudo passwd ftpweb ``` ใส่รหัสผ่านใหม่ 2 ครั้ง แล้วลองเข้า FTP อีกครั้งด้วยรหัสนี้ --- ## ขั้นที่ 2: ถ้ายัง 530 — เช็ค shell vsftpd ใช้ shell ของ user ต้องอยู่ใน `/etc/shells` ถึงจะให้ login ได้ (แม้เป็น nologin): ```bash # ดู 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: ```bash sudo systemctl restart vsftpd ``` --- ## ขั้นที่ 3: ถ้าใช้ userlist (อนุญาตเฉพาะ user ในรายการ) ถ้าใน config มี `userlist_enable=YES` และ `userlist_deny=YES` แปลว่า “อนุญาตเฉพาะ user ที่อยู่ในไฟล์” — ต้องใส่ ftpweb ในไฟล์นั้น: ```bash # ดูว่าใช้ไฟล์ไหน 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 ```bash 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 อยู่แล้ว) ```bash echo '/usr/sbin/nologin' | sudo tee -a /etc/shells sudo passwd ftpweb sudo systemctl restart vsftpd ``` จากนั้นลองเข้า FTP ใหม่ด้วย **user: ftpweb** และ **รหัสที่ตั้งด้วย `passwd`**