Назад | Перейти на главную страницу

Debian 6: настройка FTP только для редактирования веб-сайтов

У меня есть VPS с Debian 6.0. В настоящее время SSH настроен так, чтобы не принимать входы по паролю, а только на основе ключей.

Человек, которому нужно работать на одном конкретном веб-сайте (vhost), желает использовать FTP. Ему не нужен / не нужен SSH. Как я могу настроить для него доступ по FTP, чтобы он имел права на запись для всех файлов в соответствующем каталоге и только для соответствующего каталога? Каталог /srv/www/domainname.com/public_html

В настоящее время все каталоги и файлы в этом каталоге принадлежат www-data: www-data и имеют размер 644/755.

Я установил vsftpd и читал некоторые руководства, но все они, похоже, имеют дело с тем, чтобы позволить нескольким пользователям иметь свои собственные каталоги с именами пользователей, что мне не нужно. Кажется, я не могу понять, как просто определить одного пользователя FTP с паролем, который имеет доступ к одному каталогу по моему выбору.

Это мой первый опыт настройки FTP-сервера.

Спасибо.

Изменить: также нашли этот - может мне стоит использовать ProFTPd, или vsftpd может делать то, что я хочу?

Если вы хотите использовать только решение SFTP, я недавно создал сообщение в блоге, которое описывает именно это, включая несколько распространенных ошибок: http://blog.frands.net/sftp-only-chroot-users-with-openssh-in-debian-166/

Если вы хотите использовать FTP-решение, vsftpd - действительно хороший выбор. Однако, когда пользователь загружает файл, он будет настроен с его пользователем и группой после определенной umask. Вы можете установить основную группу пользователя на www-data, а затем создать umask, подходящую для vsftpd.

Это быстрый способ сделать то, что я предложил:

Создайте пользователя с группой www-data, без реальной оболочки и правильным домашним каталогом, затем установите пароль

useradd -d /path/to/his/domain.com -g www-data -s /bin/false theusername
passwd theusername

Убедитесь, что vsftpd принимает его оболочку. cat / etc / shells и найдите / bin / false (по умолчанию его там не должно быть) - если его там нет, добавьте:

echo "/bin/false" >> /etc/shells

Затем отредактируйте файл конфигурации vsftpd. Коснитесь этих параметров: (если они закомментированы, удалите #)

Отключить анонимный доступ к серверу

anonymous_enable=NO

Разрешить локальным пользователям использовать FTP

local_enable=YES

Разрешить загрузку файлов

write_enable=YES

Установите umask, чтобы файлы, загружаемые пользователем, также были доступны для записи по группе (www-data)

local_umask=002

Chroot пользователя, чтобы он не мог покинуть свой домашний каталог

chroot_local_user=YES

Теперь перезапустите vsftpd

/etc/init.d/vsftpd restart

и все должно быть готово.

НО!

  • FTP обычно небезопасен.
  • Если можно использовать SFTP, используйте его.
  • Разрешение веб-серверу записи в файлы является недостатком безопасности, если только каталог не используется для загрузки или файлов, которые веб-сайт обычно изменяет.