Предоставление пользователю sftp доступа к каталогу /var/www

Я создал пользователя и сделал его домашний каталог /var/www/mysite/ftpdir

Я также добавил запись пользователя Match для этого пользователя в sshd_config с ChrootDirectory, который указывает на /var/www/mysite

Я перезапустил ssh чтобы поднять это.

Когда я вхожу с sftp - пользователь все еще идет в старый каталог пользователя, т.е. /home/user

Что мне не хватает?

2 ответа

Решение

Это процесс:

  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
    

У меня есть простой метод, и он работал для меня Apache.

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

Вот и все, если вы все еще сталкиваетесь с проблемой разрешения chmod а также chown обратиться к ним в соответствии с вашими потребностями.

Если вы получаете сообщение об ошибке "Отказано в соединении", убедитесь, что после "UsePAM ye s" указано "Subsystem sftp internal- sftp". Если нет, то обновите и перезапустите ssh и все заработало.

Другие вопросы по тегам