Bir sftp kullanıcısına / var / www dizinine erişim izni verme


13

Bir kullanıcı oluşturdum ve ana dizinini oluşturdum /var/www/mysite/ftpdir

Ayrıca sshd_configişaret eden bir ChrootDirectory ile bu kullanıcı için bir Match kullanıcı girişi ekledim/var/www/mysite

Bunu sshalmaya yeniden başladım .

Sftp ile giriş yaptığımda - kullanıcı hala kullanıcının eski dizinine gider yani /home/user

Neyi kaçırıyorum?


/home/userhedefe bağlantınıza ne dersiniz ?
imsi

Yanıtlar:


18

Bu süreç:

  1. : Grubuna ekleyin sudo usermod -aG www blubolduğu gibi düzenlemek için nedir en basit yolu ve "/ var / www" dosya eklemek?

    ya da sadece kullan sudo adduser <username> www-data

  2. Vsftpd yükle sudo apt-get install vsftpd
  3. Vsftpd'yi uzaktan erişim için yapılandırma: sudo nano /etc/vsftpd.confve dosya kümesinin içinde

    chroot_local_user=YES
    

    ve bunun yorumlandığından emin olun:

    #chroot_list_enable=YES
    

    uygun olarak belgeleri .

  4. Nsftp'yi yeniden başlat: sudo service vsftpd restart
  5. Kullanıcının giriş dizinini web dizinine yapılandırın (içinde değil /home):

    sudo usermod -d /var/www/mysite/ftpaccessdir <username>
    
  6. Ssh chroot yapılandırın

    sudo nano /etc/ssh/sshd_config
    

    aşağıdakileri sonuna ekleyin:

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

    ve dosyada bunun yorumlandığından emin olun (yani az önce eklediğiniz dosyadan önce)

    #Subsystem sftp /usr/lib/openssh/sftp-server
    
  7. Ssh'yi yeniden başlat

    sudo service ssh restart
    
  8. Apache izinlerini değiştirin:

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

    Buradaki dokümanlardaki gibi .

  9. Dizininizin www-data erişimine sahip olduğundan emin olun

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

2
Bu talimatı izledim, ancak bu satırları eklediğimde bağlantı reddedildi Alt sistem sftp internal-sftp Kullanıcıyı eşleştir <kullanıcıadı> ChrootDirectory / var / www / site ForceCommand internal-sftp AllowTcpForwarding no
Ata

1
Ayrıca Ubuntu
14.04

Benim de aynı problemim var!
maxisme

4
9. adıma nasıl geliyorsanız, bu chown root:root /var/www/sitesadece sudo chown -R www-data:www-data /var/www/sitekasıtlı olarak 10. adıma geri dönmeniz gerekir ?
JohnnyQ

Bu benim için çalışmıyor
Linga

2

Sonunda bağlantı reddedildi hatası alıyorsanız "UsePAM yes" ifadesinden sonra " Subsystem sftp internal-sftp" öğesinin bulunduğundan emin olun . Değilse ssh'yi güncelleyin ve yeniden başlatın ve işe yaradı.


0

Basit bir yöntemim var ve bu benim için apache için çalıştı.

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

Hala izin sorunu kullanımıyla karşı karşıya kalmanız chmodve chownbunları ihtiyaçlarınıza göre ele almanız durumunda.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.