В жемчуге это может быть сделано много simplier:
perl -ne 'open(F, ">", ($1).".txt") if /\[ (entry\d+) \]/; print F;' file
Удостоверьтесь, что следующая строка существует
chroot_local_user=YES
Корневой каталог пользователя аппарата к /var/www/
, если Вы хотите измениться для существующего пользователя затем, можно использовать:
usermod --home /var/www/ username
затем установите требуемое разрешение на /var/www/
user_sub_token
Если Вы не хотите изменять Корневой каталог пользователя затем, можно использовать:
chroot_local_user=YES
local_root=/ftphome/$USER
user_sub_token=$USER
user_sub_token
:Автоматически генерируйте корневой каталог для каждого виртуального пользователя, на основе шаблона. Например, если корневой каталог реального пользователя, указанного через guest_username, будет/ftphome/$USER, и user_sub_token установлен на $USER, то, когда тест виртуального пользователя входит в систему, он закончит (обычно chroot () 'редактор) в каталоге,/ftphome/test. Эта опция также берет влияние, если local_root содержит user_sub_token.
Создайте каталог и настройте полномочия:
mkdir -p /ftphome/{test,user1,user2}
chmod 770 -R /ftphome
chown -R ftp. /ftphome
usermod -G ftp test
Однажды перезапуск vsftpd
и протестируйте свою установку.
Демонстрационный успех произвел:
[root@mail tmp]# ftp localhost
Connected to mail.linuxian.local.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mput vhosts
mput vhosts?
227 Entering Passive Mode (127,0,0,1,146,41)
150 Ok to send data.
226 File receive OK.
24 bytes sent in 3.3e-05 seconds (7.1e+02 Kbytes/s)
ftp> ls -rlt
227 Entering Passive Mode (127,0,0,1,97,90)
150 Here comes the directory listing.
-rw-r--r-- 1 787 787 24 Oct 11 19:57 vhosts
226 Directory send OK.
ftp> 221 Goodbye.
Проверьте chroot
опции в vsftpd.conf
и создайте отдельного пользователя для него, homedir которого установлен на /var/www
.
Я использовал предложение Рахула Патила, приведенное выше:
chroot_local_user=YES
local_root=/home/$USER/www-data
user_sub_token=$USER
Но я не мог понять, почему я мог войти в систему только с одним пользователем. Затем я обнаружил, что мы не можем выполнить chroot в корневой каталог (в данном случае / home / $ USER / www-data
), у которого есть доступ на запись. Поэтому я удаляю доступ на запись с помощью:
# chmod a-w /home/$USER/www-data
ПРИМЕЧАНИЕ: измените $ USER
с вашим пользователем.
$USER
дляlocal_root
, такой как/home/$USER/ftp
(который будет chroot пользователи кftp
подкаталог их домашнего dir). – Benoit Duffez 17.08.2015, 23:14local_root
в фактический корневой каталог пользователя. – Thomas Urban 18.03.2017, 00:31