Проблема с chroot ftp сервера

Всем привет! Возникли проблемы с конфигурацией vsftpd ftp сервера opensuse 11.4: сам сервер поднял, добавил пользователей, но появилась проблема с chroot. Если дать пользователю chroot то он начинает видеть корневой каталог “/” (хотя вроде наоборот должно быть). Если не давать, то при входе на сервер его кидает в домашнюю папку пользователя, но через дерево каталогов он всёравно может попасть в “/”.
вот файл конфигурации:


# Example config file /etc/vsftpd.conf
 #
 # The default compiled in settings are fairly paranoid. This sample file
 # loosens things up a bit, to make the ftp daemon more usable.
 # Please see vsftpd.conf.5 for all compiled in defaults.
 #
 # If you do not change anything here you will have a minimum setup for an
 # anonymus FTP server.
 #
 # READ THIS: This example file is NOT an exhaustive list of vsftpd options.
 # Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
 # capabilities.
 #
 # ################
 # General Settings
 # ################
 #
 # Uncomment this to enable any form of FTP write command.
 write_enable=YES
 #
 # Activate directory messages - messages given to remote users when they
 # go into a certain directory.
 dirmessage_enable=YES
 #
 # It is recommended that you define on your system a unique user which the
 # ftp server can use as a totally isolated and unprivileged user.
 nopriv_user=ftpsecure
 #
 # You may activate the "-R" option to the builtin ls. This is disabled by
 # default to avoid remote users being able to cause excessive I/O on large
 # sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
 # the presence of the "-R" option, so there is a strong case for enabling it.
 #ls_recurse_enable=YES
 #
 # You may specify a file of disallowed anonymous e-mail addresses. Apparently
 # useful for combatting certain DoS attacks.
 #deny_email_enable=YES
 # (default follows)
 #banned_email_file=/etc/vsftpd.banned_emails
 #
 # If  enabled,  all  user  and  group  information in
 # directory listings will be displayed as "ftp".
 #hide_ids=YES
 #
 # #######################
 # Local FTP user Settings
 # #######################
 #
 # Uncomment this to allow local users to log in.
 local_enable=YES
 #chroot_list_enable=NO
 # (default follows)
 #chroot_list_file=/etc/chroot.conf
 #
 # The maximum data transfer rate permitted, in bytes per second, for
 # local authenticated users. The default is 0 (unlimited).
 #local_max_rate=7200
 #
 # ##########################
 # Anonymus FTP user Settings
 # ##########################
 #
 # Allow anonymous FTP? (Beware - allowed by default if you comment this out).
 anonymous_enable=NO
 #
 # The maximum data transfer rate permitted, in bytes per second, for anonymous
 # authenticated users. The default is 0 (unlimited).
 #anon_max_rate=7200
 #
 # Anonymous users will only be allowed to download files which are
 # world readable.
 anon_world_readable_only=YES
 #
 # Default umask for anonymus users is 077. You may wish to change this to 022,
 # if your users expect that (022 is used by most other ftpd's)
 #anon_umask=022
 #
 # Uncomment this to allow the anonymous FTP user to upload files. This only
 # has an effect if the above global write enable is activated. Also, you will
 # obviously need to create a directory writable by the FTP user.
 #anon_upload_enable=YES
 #
 # Uncomment this if you want the anonymous FTP user to be able to create
 # new directories.
 #anon_mkdir_write_enable=YES
 #
 # Uncomment this to enable anonymus FTP users to perform other write operations
 # like deletion and renaming.
 #anon_other_write_enable=YES
 #
 # If you want, you can arrange for uploaded anonymous files to be owned by
 # a different user. Note! Using "root" for uploaded files is not
 # recommended!
 #chown_uploads=YES
 #chown_username=whoever
 #
 # ############
 # Log Settings
 # ############
 #
 # Log to the syslog daemon instead of using an logfile.
 syslog_enable=NO
 #
 # Uncomment this to log all FTP requests and responses.
 #log_ftp_protocol=YES
 #
 # Activate logging of uploads/downloads.
 #xferlog_enable=YES
 #
 # You may override where the log file goes if you like. The default is shown
 # below.
 #
 #vsftpd_log_file=/var/log/vsftpd.log
 #
 # If you want, you can have your log file in standard ftpd xferlog format.
 # Note that the default log file location is /var/log/xferlog in this case.
 #xferlog_std_format=YES
 #
 # You may override where the log file goes if you like. The default is shown
 # below.
 #xferlog_file=/var/log/vsftpd.log
 #
 # Enable this to have booth logfiles. Standard xferlog and vsftpd's own style log.
 #dual_log_enable=YES
 #
 # Uncomment this to enable session status information in the system process listing.
 #setproctitle_enable=YES
 #
 # #################
 # Transfer Settings
 # #################
 #
 # Make sure PORT transfer connections originate from port 20 (ftp-data).
 connect_from_port_20=YES
 #
 # You may change the default value for timing out an idle session.
 #idle_session_timeout=600
 #
 # You may change the default value for timing out a data connection.
 #data_connection_timeout=120
 #
 # Enable this and the server will recognise asynchronous ABOR requests. Not
 # recommended for security (the code is non-trivial). Not enabling it,
 # however, may confuse older FTP clients.
 #async_abor_enable=YES
 #
 # By default the server will pretend to allow ASCII mode but in fact ignore
 # the request. Turn on the below options to have the server actually do ASCII
 # mangling on files when in ASCII mode.
 # Beware that on some FTP servers, ASCII support allows a denial of service
 # attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
 # predicted this attack and has always been safe, reporting the size of the
 # raw file.
 # ASCII mangling is a horrible feature of the protocol.
 ascii_upload_enable=YES
 ascii_download_enable=YES
 #
 # Set to NO if you want to disallow the  PASV  method of obtaining a data
 # connection.
 #pasv_enable=NO
 #
 # PAM setting. Do NOT change this unless you know what you do!
 pam_service_name=vsftpd
 #
 # Set to ssl_enable=YES if you want to enable SSL
 ssl_enable=NO
 #
 # Limit passive ports to this range to assis firewalling
 pasv_min_port=30000
 pasv_max_port=30100
 anon_mkdir_write_enable=YES
 anon_upload_enable=YES
 chroot_local_user=NO
 ftpd_banner=welcom to the newmanej ftp-server! :-P
 idle_session_timeout=900
 log_ftp_protocol=NO
 max_clients=10
 max_per_ip=3
 pasv_enable=YES
 ssl_sslv2=NO
 ssl_sslv3=NO
 ssl_tlsv1=YES
 anon_root=/srv/ftp
 listen=YES


Вот как выглядит на деле:
без chroot
http://litleblinus.narod.ru/nochroot.jpg

c chroot
http://litleblinus.narod.ru/chroot.jpg

Похожей проблемы не нашёл, вроде всё должно решаться через chroot…

При проверки ты подключаешь к FTP с логином и паролем или как анонимный пользователь?
Чтобы черут работал для зарегистрированных пользователей попробуй поменять вот это
chroot_local_user=NO

И еще не понял какой опцией ты даешь или не даешь черут?

При проверке подключаюсь под пользователем ftpsecure и ещё одним которого специально создал. Анонимы отключены. Chroot_local_user менял на YES - на сколько я понял эта команда даёт всем chroot. Получается то, что на втором скриншоте (хотя поидее должно быть наоборот). Чрут как раз давал через эту команду. Через chroot_list_enable почему-то не работает (возможно не правельно создал список юзеров которым нужно дать chroot)

Думал надо сделать для все. Со списками пользователей не работал, всегда делал для всех. Так что с правильностью списка не помогу. Но думаю проблема в том что когда ты даешь черут, черут делается на корень. Так как в конфиге он не задан. Попробуй добавить эту опцию

local_root=/srv/ftp

Огромное спасибо! а я всё голову ломал…:good:

А куда пропиывать umask директории или пользователя? нужно что бы создаваемый файл был с параметрами 750, как это сделать?

Опять же знаю только как для всех пользователей.
local_umask=0750