การให้สิทธิ์ผู้ใช้ sftp เข้าถึงไดเรกทอรี / var / www


12

ฉันได้สร้างผู้ใช้และสร้างโฮมไดเร็กตอรี่ของเขาแล้ว /var/www/mysite/ftpdir

ฉันได้เพิ่มรายการผู้ใช้ที่ตรงกันสำหรับผู้ใช้รายนี้sshd_configด้วย ChrootDirectory ที่ชี้ไป/var/www/mysite

ฉันรีสตาร์ทsshเพื่อรับสิ่งนี้

เมื่อฉันเข้าสู่ระบบด้วย sftp - ผู้ใช้ยังคงไปที่ไดเรกทอรีเก่าของผู้ใช้เช่น /home/user

ฉันกำลังคิดถึงอะไร


คุณเชื่อมโยง/home/userไปยังเป้าหมายเป็นอย่างไร
ish

คำตอบ:


17

นี่คือกระบวนการ:

  1. เพิ่มผู้ใช้ในกลุ่ม: sudo usermod -aG www blubเช่นเดียวกับในวิธีที่ง่ายที่สุดในการแก้ไขและเพิ่มไฟล์ใน "/ var / www" คืออะไร?

    หรือเพียงแค่ใช้ sudo adduser <username> www-data

  2. ติดตั้ง vsftpd sudo apt-get install vsftpd
  3. กำหนดค่า vsftpd สำหรับการเข้าถึงระยะไกล: sudo nano /etc/vsftpd.confและภายในชุดไฟล์

    chroot_local_user=YES
    

    และตรวจสอบให้แน่ใจว่านี่เป็นความเห็น:

    #chroot_list_enable=YES
    

    ตามเอกสาร

  4. รีสตาร์ท nsftp: sudo service vsftpd restart
  5. กำหนดค่าโฮมไดเร็กตอรี่ของผู้ใช้ไปยังสารบบเว็บ (ไม่อยู่/home):

    sudo usermod -d /var/www/mysite/ftpaccessdir <username>
    
  6. กำหนดค่า ssh chroot

    sudo nano /etc/ssh/sshd_config
    

    เพิ่มรายการต่อไปนี้ในตอนท้าย:

    Subsystem  sftp  internal-sftp
    Match user <username>
        ChrootDirectory /var/www/site
        ForceCommand internal-sftp
    AllowTcpForwarding no
    

    และตรวจสอบให้แน่ใจว่าไฟล์นี้มีการใส่ความคิดเห็นเพิ่มเติม (เช่นก่อนที่คุณจะเพิ่ม)

    #Subsystem sftp /usr/lib/openssh/sftp-server
    
  7. รีสตาร์ท ssh

    sudo service ssh restart
    
  8. เปลี่ยนการอนุญาตสำหรับ apache:

    chown root:root /var/www
    chown root:root /var/www/site
    chmod 755 /var/www
    

    ในขณะที่เอกสารที่นี่

  9. ตรวจสอบให้แน่ใจว่าไดเรกทอรีของคุณมีการเข้าถึงข้อมูล www

    sudo chown -R www-data:www-data /var/www/site
    chmod 755 /var/www/site
    

2
ฉันได้ปฏิบัติตามคำแนะนำเหล่านี้แล้ว แต่ฉันได้รับการเชื่อมต่อที่ถูกปฏิเสธเมื่อฉันเพิ่มบรรทัดเหล่านี้ระบบย่อย sftp internal-sftp จับคู่ผู้ใช้ <ชื่อผู้ใช้> ChrootDirectory / var / www / ไซต์ ForceCommand internal-sftp AllowTcpForwarding no
Ata

1
ฉันมีปัญหาเดียวกันกับ Ubuntu 14.04
torayeff

ฉันมีปัญหาเดียวกันด้วย!
maxisme

4
ทำไมถึงขั้นตอนที่ 9 คุณchown root:root /var/www/siteเพียง แต่เปลี่ยนกลับเป็นsudo chown -R www-data:www-data /var/www/siteขั้นตอนที่ 10 โดยเจตนาเท่านั้น
JohnnyQ

นี่ไม่ทำงานสำหรับฉัน
Linga

2

หากคุณได้รับการเชื่อมต่อปฏิเสธข้อผิดพลาดในตอนท้ายแล้วให้แน่ใจว่า"ระบบย่อย SFTP ภายใน SFTP"เป็นสถานที่หลังจาก"ใช่ UsePAM" ถ้าไม่เช่นนั้นอัพเดตและรีสตาร์ท ssh และใช้งานได้


0

ฉันเป็นวิธีที่ง่ายและที่ทำงานให้ฉันเพื่อ apache

sudo useradd -d /var/www demo_user -g www-data
sudo passwd demo_user
sudo service ssh restart

ในกรณีที่คุณยังคงต้องเผชิญกับปัญหาการอนุญาตใช้งานchmodและchownเพื่อจัดการกับปัญหาตามที่คุณต้องการ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.