Надання користувачу sftp доступу до каталогу / var / www


13

Я створив користувача та зробив його домашній каталог /var/www/mysite/ftpdir

Я також додав запис користувача відповідника для цього користувача в sshd_configChrootDirectory, на який вказує/var/www/mysite

Я перезапустив, sshщоб забрати це.

Коли я входжу за допомогою sftp - користувач все одно переходить до старої директорії користувача, тобто /home/user

Що я пропускаю?


як щодо того, як ви посилаєтесь /home/userна ціль?
Останній

Відповіді:


18

Це процес:

  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 Match user <username> ChrootDirectory / var / www / site ForceCommand Internal-sftp AllowTcpForwarding ні
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

Це не працює для мене
Лінга,

2

Якщо ви отримуєте помилку відмови в з’єднанні наприкінці, переконайтесь, що після "UsePAM так" є " Підсистема sftp Internal -sftp " . Якщо ні, то оновіть і перезавантажте ssh, і він спрацював.


0

У мене простий метод, який працював для мене на апачі.

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

Це все в тому випадку, якщо ви все ще стикаєтесь із використанням дозволу на видачу дозволу chmodта chownвирішуйте їх відповідно до своїх потреб.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.