Используя Centos7 и vsftpd, я хотел бы chroot пользователя "testftp" в его домашнюю папку / home / testftp.
Клиент использует WinSCP в Windows.
Пользователь testftp может подключиться к серверу и сначала подключается к своей домашней папке.
Однако пользователь по-прежнему может просматривать более высокие уровни.
пароль:
testftp:x:1001:1001::/home/testftp/:/bin/bash
vsftpd.conf:
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
Домашняя папка testftp:
Это было изменено с помощью chmod 500 из-за этой строки в vsftpd.conf
(Предупреждение! Chroot'ing может быть очень опасным. При использовании chroot убедитесь, что у пользователя нет доступа на запись в каталог верхнего уровня внутри chroot)
dr-x ------. 3 testftp testftp 73 дек 5 10:44 testftp
Внутри домашней папки есть еще одна папка под названием ftp:
drwx ------. 2> testftp testftp 44 5 декабря 10:52 ftp
Ответ нашел сам.
Создайте еще одну папку внутри домашней папки:
mkdir / главная / ftptest / ftp
измените файл vsftpd.conf следующим образом:
chroot_local_user = НЕТ
chroot_list_enable = ДА
user_sub_token = $ USER
local_root = / home / $ USER / ftp (это папка, которую мы только что создали)
Эта настройка гарантирует, что ни один пользователь не будет chrooted, кроме тех, которые находятся в chroot_list
Если вы хотите, чтобы все были chrooted, кроме тех, что указаны в chroot_list, измените chroot_local_user = YES.
Таким образом, у каждого пользователя будет доступ к FTP-сервису (с root-доступом или без). Если вы хотите, чтобы определенные пользователи не имели доступа к службе FTP, или наоборот, все пользователи, кроме нескольких, используйте список пользователей в vsftpd.conf.
Попробуй это...
vim в /etc/vsftp.conf и добавить -> allow_writeable_chroot = YES
перезапустить сервер -> перезапустить сервис vsftpd
-или-
выйдите из vim и запустите эту команду -> chmod a-w / home / testftp
перезапустить сервер -> перезапустить сервис vsftpd