Przyznanie użytkownikowi sftp dostępu do katalogu / var / www

13

Stworzyłem użytkownika i utworzyłem jego katalog domowy /var/www/mysite/ftpdir

Dodałem również wpis Dopasuj użytkownika dla tego użytkownika sshd_configz ChrootDirectory, który wskazuje/var/www/mysite

Znowu zacząłem to sshodbierać.

Kiedy loguję się za pomocą sftp - użytkownik nadal przechodzi do starego katalogu użytkownika, tj /home/user

czego mi brakuje?

Sokole Oko
źródło
co powiesz na dowiązanie symboliczne /home/userdo celu?
ish

Odpowiedzi:

18

Oto proces:

  1. Dodaj użytkownika do grupy: sudo usermod -aG www blubjak w Jaki jest najprostszy sposób edycji i dodawania plików do „/ var / www”?

    lub po prostu użyj sudo adduser <username> www-data

  2. Zainstaluj vsftpd sudo apt-get install vsftpd
  3. Skonfiguruj vsftpd dla dostępu zdalnego: sudo nano /etc/vsftpd.confi wewnątrz zestawu plików

    chroot_local_user=YES
    

    i upewnij się, że jest to skomentowane:

    #chroot_list_enable=YES
    

    zgodnie z dokumentacją .

  4. Uruchom ponownie nsftp: sudo service vsftpd restart
  5. Skonfiguruj katalog domowy użytkownika na katalog internetowy (nie w /home):

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

    sudo nano /etc/ssh/sshd_config
    

    dodaj na końcu:

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

    i upewnij się, że w dalszej części pliku jest to skomentowane (tj. przed tym, który właśnie dodałeś)

    #Subsystem sftp /usr/lib/openssh/sftp-server
    
  7. Uruchom ponownie ssh

    sudo service ssh restart
    
  8. Zmień uprawnienia do apache:

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

    Jak w dokumentach tutaj .

  9. Upewnij się, że twój katalog ma dostęp do danych www

    sudo chown -R www-data:www-data /var/www/site
    chmod 755 /var/www/site
    
Sokole Oko
źródło
2
Śledzę te instrukcje, ale mam odmowa połączenia na końcu kiedy dodać te linie podsystemu SFTP wewnętrznego sftp użytkownik Mecz <nazwa_użytkownika> ChrootDirectory / var / www / strona ForceCommand wewnętrznego SFTP nie AllowTcpForwarding
ATA
1
Mam również ten sam problem z Ubuntu 14.04
torayeff
Mam też ten sam problem!
maxisme 17.03.15
4
Dlaczego w kroku 9 chown root:root /var/www/sitewystarczy przywrócić go do sudo chown -R www-data:www-data /var/www/sitekroku 10, czy jest to celowe?
JohnnyQ
To nie działa dla mnie
Linga
2

Jeśli na końcu pojawia się błąd odmowy połączenia, upewnij się, że „Podsystem sftp wewnętrzny-sftp” znajduje się po „UsePAM tak” . Jeśli nie, zaktualizuj i uruchom ponownie ssh i zadziałało.

Needhi Agrawal
źródło
0

Mam prostą metodę, która działała dla mnie na apache.

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

Tak jest w przypadku, gdy nadal napotykasz problem z pozwoleniem chmodi chownrozwiązujesz je zgodnie ze swoimi potrzebami.

Imran Zahoor
źródło