Memberikan akses pengguna sftp ke direktori / var / www

12

Saya telah membuat pengguna dan membuat direktori rumahnya /var/www/mysite/ftpdir

Saya juga menambahkan entri pengguna Cocokkan untuk pengguna ini sshd_configdengan ChrootDirectory yang menunjuk ke/var/www/mysite

Saya telah memulai kembali sshuntuk mengambil ini.

Ketika saya masuk dengan sftp - pengguna masih pergi ke direktori lama yaitu pengguna /home/user

Apa yang saya lewatkan?

hawkeye
sumber
bagaimana dengan Anda symlink /home/userke target?
ish

Jawaban:

17

Inilah prosesnya:

  1. Tambahkan pengguna ke grup: sudo usermod -aG www blubseperti di Whats cara termudah untuk mengedit dan menambahkan file ke "/ var / www"?

    atau gunakan saja sudo adduser <username> www-data

  2. Instal vsftpd sudo apt-get install vsftpd
  3. Konfigurasikan vsftpd untuk akses jarak jauh: sudo nano /etc/vsftpd.confdan di dalam kumpulan file

    chroot_local_user=YES
    

    dan memastikan ini dikomentari:

    #chroot_list_enable=YES
    

    sesuai dokumentasi .

  4. Mulai kembali nsftp: sudo service vsftpd restart
  5. Konfigurasikan direktori home pengguna ke direktori web (tidak di /home):

    sudo usermod -d /var/www/mysite/ftpaccessdir <username>
    
  6. Konfigurasikan ssh chroot

    sudo nano /etc/ssh/sshd_config
    

    tambahkan berikut ini sampai akhir:

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

    dan pastikan bahwa lebih jauh di atas dalam file bahwa ini dikomentari (yaitu sebelum yang baru saja Anda tambahkan)

    #Subsystem sftp /usr/lib/openssh/sftp-server
    
  7. Mulai kembali ssh

    sudo service ssh restart
    
  8. Ubah izin untuk apache:

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

    Seperti dalam dokumen di sini .

  9. Pastikan direktori Anda memiliki akses data-www

    sudo chown -R www-data:www-data /var/www/site
    chmod 755 /var/www/site
    
hawkeye
sumber
2
Saya telah mengikuti instruksi ini, tetapi koneksi saya ditolak pada akhirnya ketika saya menambahkan baris ini Subsystem sftp internal-sftp Match pengguna <username> ChrootDirectory / var / www / situs ForceCommand internal-sftp AllowTcpForwarding no
Ata
1
Saya juga memiliki masalah yang sama dengan Ubuntu 14.04
torayeff
Saya mempunyai masalah yang sama juga!
maxisme
4
Bagaimana bisa pada Langkah 9 Anda chown root:root /var/www/sitehanya perlu mengembalikannya kembali sudo chown -R www-data:www-data /var/www/sitepada Langkah 10 apakah ini disengaja?
JohnnyQ
Ini tidak berfungsi untuk saya
Lingga
2

Jika Anda mendapatkan koneksi ditolak kesalahan di akhir maka pastikan bahwa "Subsystem sftp internal-sftp" ada setelah "UsePAM yes" . Jika tidak maka perbarui dan Restart ssh dan itu berhasil.

Needhi Agrawal
sumber
0

Saya punya metode sederhana dan itu berhasil bagi saya untuk apache.

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

Itu kalau-kalau Anda masih menghadapi masalah penggunaan izin chmoddan chownuntuk mengatasinya sesuai dengan kebutuhan Anda.

Imran Zahoor
sumber