С участием proftpd вы можете изменить редактирование каталога по умолчанию /etc/proftpd.conf
DefaultRoot ~
изменить на
DefaultRoot ~ / музыка
Как я могу добиться того же результата с SFTP?
Я использую Ubuntu lucid, кстати.
Тай большое за вашу помощь.
К сожалению, у меня недостаточно репутации, чтобы давать комментарии, потому что все, что я хотел сделать, это подчеркнуть, насколько важен комментарий Ричарда Фэрхерста и как его следует добавить к «официальному ответу». Я видел людей здесь и в других местах, у которых возникли проблемы с установкой домашнего каталога пользователя или с тем, чтобы домашний каталог пользователя был "каталогом по умолчанию". Это просто потому, что в среде chroot корневой каталог больше не является /. Это означает, что любой другой путь должен быть относительно нового корневого пути. Пример:
если вы выполняете chroot в / home и хотите, чтобы каталог по умолчанию был / home / default, вы должны установить домашний каталог пользователя в / default. Не / home, потому что / home будет новым /.
Если вам действительно нужно сохранить домашний каталог пользователя в / home / user, но вы хотите иметь каталог по умолчанию для сеансов sftp, вы можете использовать параметр -d для internal-sftp. Как в этом примере:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory /mnt/sftp
ForceCommand internal-sftp -d /default
/ default - это каталог внутри / mnt / sftp. Обратите внимание, что здесь путь опять же относительно нового корня.
Посмотри на этот статья, в которой показано, как использовать sshd ChrootDirectory
чтобы заставить всех членов определенной группы попасть в общий корень каталога. Вы можете изменить его в соответствии со своими требованиями.
Возможно, есть способ добиться того, чего вы хотите, но, насколько я знаю, sftp работает через ssh, поэтому не уверен, как это сделать с ssh для каждого пользователя.
Однако один из способов обойти то, что вы хотите сделать, - это обновить данные пользователя для входа в определенный каталог следующим образом. Это будет
$ sudo usermod -d [certain path that you want to direct] username
Ответ lain был полезен, но в интересах большей ясности и не в зависимости от ссылки (так что я смогу найти его в следующий раз):
Поиск Интернет для ChrootDirectory
, чтобы получить базовую документацию и настройку, я не буду копировать их здесь, а только укажу, как решить заданный вопрос.
Для выделенного файлового сервера используйте: Match Group *,!sudo
так что любой, кто не является администратором, по умолчанию получает доступ только к chrooted sftp.
Устанавливать ChrootDirectory /home/%u
- chroot основан на имени пользователя, а не на его домашнем каталоге
Убедитесь, что каталог пользователей в / home принадлежит root: root
Задайте путь к домашнему каталогу в / etc / passwd на каталог, в который вы хотите войти по умолчанию, но сделайте его относительно каталога chroot:
Если вы хотите, чтобы пользовательский acnt попал в / home / acnt / files /, установите passwd home для acnt в / files.
Убедитесь, что / home / acnt / files принадлежит acnt: acnt, чтобы пользователь мог писать в каталог, даже если / home / acnt / должен принадлежать root для работы chroot jail.
Я только что проделал то же самое с установкой Ubuntu Lucid 10.04. Ответ, кажется, заключается в том, чтобы заблокировать определенные логины для определенной папки. Единственным недостатком является то, что папка, к которой они привязаны, должна принадлежать root: root и не может быть доступна для записи пользователем, входящим в систему, чтобы ssh разрешил вход sftp работать. Итак, у них есть доступ только к другим папкам в папке, к которой они привязаны.
http://ubuntuforums.org/showthread.php?t=1057657
Кроме того, установка папки по умолчанию для пользователя с помощью «usermod -d» не меняет значение по умолчанию для этого пользователя, переходящего в корневую папку / папку при входе в sftp.
Если вы используете ProFTPD, взгляните на модуль ProFTPD SFTP.