ก่อนอื่น ขอขอบคุณที่สละเวลาดูคำถามโง่ๆ ของฉัน :)
ฉันมีเซิร์ฟเวอร์ที่ใช้ Ubuntu 18.04 LTS และฉันต้องอนุญาตให้ผู้ใช้หลายคนเชื่อมต่อผ่าน ftp ในโฮมไดเร็กทอรีแยกต่างหากสำหรับวัตถุประสงค์ของ Web FTP และฉันพบปัญหาที่ไม่สามารถหาคำตอบได้หลังจากผ่านไปหนึ่งวัน ค้นหา ฉันจึงโยนผ้าเช็ดตัวขอความช่วยเหลือ
ฉันมีโต๊ะ เอฟทีพี
ในฐานข้อมูลของฉัน และภายในมี 4 คอลัมน์ รหัส
, ชื่อผู้ใช้
, ผ่าน
, และ โดเมน
, โดเมน
เป็นจุดสนใจของคำถามของฉัน ฉันได้รับ PAM_MySQL เพื่อให้ทำงานได้อย่างถูกต้อง แต่ตอนนี้ฉันต้องสามารถตั้งชื่อผู้ใช้แยกจากโฮมไดเร็กทอรีได้ โดเมน
คอลัมน์.
ดูสิ ปัญหาคือทุกที่ที่ฉันเห็น VSFTTPd ใช้ชื่อผู้ใช้ของผู้ใช้เสมือนสำหรับโฮมไดเร็กตอรี่ซึ่งใช้ได้ในสถานการณ์ส่วนใหญ่ แต่ฉันต้องมีผู้ใช้ได้ ผู้ใช้1
สามารถเข้าถึงโดเมน ทดสอบ mydomain.com
แต่ฉันยังต้องการ ผู้ใช้3
สามารถเข้าถึงได้ ทดสอบ mydomain.com
เช่นกัน เหตุใดฉันจึงไม่สามารถตั้งชื่อผู้ใช้เป็นโดเมนและดำเนินการได้เนื่องจาก ผู้ใช้1
และ ผู้ใช้3
ทั้งคู่ต้องการรหัสผ่านแยกกัน
ฉันเคยเห็นเกี่ยวกับเรื่องนี้ คำถามเกี่ยวกับความผิดพลาดของเซิร์ฟเวอร์ เมื่อ 11 ปีก่อนที่บุคคลนี้พบคำตอบ ซึ่งรวมถึง inline MySQL ในไฟล์ /etc/vsftpd.conf อย่างไรก็ตาม เมื่อฉันลองวิธีแก้ปัญหา และป้อนข้อมูลรับรองฐานข้อมูลของฉัน ฉันพบว่าไคลเอ็นต์สามารถเข้าสู่ระบบได้ ได้สำเร็จ แต่ FileZilla บ่นเรื่องก ข้อผิดพลาด GnuTLS -15
ซึ่งจากประสบการณ์ของฉันหมายความว่าไม่ได้ตั้งค่าไดเร็กทอรีหลักและการเชื่อมต่อ FTP ไม่สามารถดำเนินการต่อได้ ซึ่งมันตลกเพราะเมื่อฉันเรียกใช้บนบรรทัดคำสั่ง ฉันได้รับผลลัพธ์ที่สะอาดโดยไม่มีการใส่สไตล์หรือคำเตือนใดๆ และมันควรจะส่งออกด้วยวิธีนั้นในไฟล์การกำหนดค่า แต่ด้วยเหตุผลบางอย่าง ก็แค่.. ไม่
นี่คือตัวอย่างโค้ดที่ฉันได้รับจากคำถาม Server Fault ใน vsftpd.conf ของฉันเอง:
``ส่งออก MYSQL_PWD=MYSQLPASSWORD; mysql -sN -uUSERNAME -h HOSTNAME DATABASE -e "เลือกโดเมนจาก DATABASE.accounts โดยที่ username='user1'"``
และนี่คือผลลัพธ์ในบรรทัดคำสั่ง:
/var/www/subdomains/test.mydomain.com
ฉันสามารถตั้งค่าด้วยตนเองในการกำหนดค่าและใช้งานได้ไม่มีปัญหา ดังนั้นฉันเดาว่าเป็นเพียงอินไลน์ MySQL
มีวิธีแก้ไขปัญหานี้หรือไม่?
และฉันจะคว้าบันทึก แต่ดูเหมือนจะไม่มีรายการใดแสดงไดเร็กทอรีที่ผู้ใช้เสมือนพยายามเข้าถึง ดังนั้นหากคุณทราบคำสั่งที่สามารถทำเช่นนั้นได้ ฉันยินดีที่จะโพสต์ผลลัพธ์ของมัน
/var/log/vsftpd.log
ไม่แสดงอะไรที่เป็นประโยชน์ เพียงแค่ว่าไคลเอ็นต์สามารถเข้าสู่ระบบได้
สมุดรายวันctl -xe
แสดงสิ่งต่อไปนี้:
03 มิ.ย. 03:17:57 น. server-4 vsftpd[18039]: pam_unix(vsftpd:session): เซสชันเปิดสำหรับผู้ใช้ user1 โดย (uid=0)
Jun 03 03:17:57 server-4 vsftpd[18039]: pam_systemd(vsftpd:session): ไม่สามารถรับข้อมูลผู้ใช้
Jun 03 03:17:57 server-4 vsftpd[18039]: pam_systemd(vsftpd:session): ไม่สามารถรับข้อมูลผู้ใช้
03 มิ.ย. 03:17:57 น. เซิร์ฟเวอร์-4 pam-script[18039]: ไม่สามารถ stat /usr/share/libpam-script/pam_script_ses_close
03 มิ.ย. 03:17:57 น. server-4 vsftpd[18039]: pam_unix(vsftpd:session): ปิดเซสชันสำหรับผู้ใช้ user1
ฉันสามารถให้บันทึกที่คุณต้องการดังนั้นยิงและบางทีคุณอาจจะทำคะแนน!
ขอบคุณจริงๆ ฉันขอขอบคุณอย่างจริงใจที่คุณใช้เวลาของคุณกับปัญหาของฉัน