У меня есть IIS7, и я использую IIS6 ftp для управления своим ftp-сайтом.
У меня есть веб-сайт по умолчанию, и я создал под ним несколько виртуальных каталогов.
Теперь я хочу предоставить пользователям ftp доступ только к одному виртуальному каталогу, который я выбираю, и запретить им читать или писать в любые другие папки на сайте ftp по умолчанию.
Я не хочу, чтобы они перемещались по ftp-сайтам, просто хочу, чтобы они получили доступ к их месту.
Как я могу сделать это по шагам?
Вам нужно внедрить тюрьму FTP. Обзор:
Создайте где-нибудь новую папку, назовите ее DEADEND (или что-то подобное). В IIS установите корневую папку FTP так, чтобы она указывала на эту папку.
Все пользовательские папки фактически будут расположены в другом месте, поэтому выберите для этого другую папку (черт возьми, используйте оригинальный ftproot, если хотите)
Каждый локальный пользователь на вашем сервере будет иметь путь к своей фактической папке, указанной в настройке локального пути учетной записи пользователя.
В IIS вы создадите виртуальный каталог для каждого пользователя, указывающий на его собственную папку.
Итак, некоторые подробности:
Создайте домашнюю папку пользователей (НЕ В МЕРТВОЙ) и убедитесь, что она точно соответствует имени пользователя (например, д: \ данные \ ftproot \ bloggs)
Создайте учетную запись пользователя (в данном случае имя пользователя блогии установите для параметра Local Path пользователя его домашнюю папку (например, д: \ данные \ ftproot \ bloggs)
Создайте виртуальный каталог для пользователя на FTP-сайте, задав псевдоним, точно такой же, как имя пользователя (например, блоги) и установите путь к домашнему каталогу пользователя (например, д: \ данные \ ftproot \ bloggs)
Настройте разрешения для папки физического домашнего каталога (в разрешениях безопасности снимите флажок Полный доступ для пользователя)
Когда пользователь входит в систему, он попадает прямо в свою домашнюю папку (d: \ data \ ftproot \ bloggs). Если им удается вырваться из своей домашней папки, они попадают в корневую папку FTP-сайтов, которая является папкой DEADEND, которую вы установили ранее, в которой ничего нет. (Я обычно храню там текстовый файл с надписью «НЕШЕЛАТЕЛЬНО!»)