Назад | Перейти на главную страницу

CentOS 6.5 ssh ChrootDirectory не работает

Я пытался настроить свой минимальный 64-разрядный компьютер CentOS 6.5, чтобы пользователи SFTP могли подключаться и попадать в тюрьму в определенные папки. Я могу использовать sftp с помощью команды unix: "sftp user @ localhost" и перемещаться внутри ограниченного каталога, но я не могу использовать LS или другие подобные команды. Однако настоящая проблема в том, что я вообще не могу подключиться с помощью FileZilla. Я просто получаю эту ошибку:

Status: Retrieving directory listing...
Command:    pwd
Response:   Current directory is: "/"
Command:    ls
Status: Listing directory /
Error:  Unable to open .: permission denied
Error:  Connection timed out after 20 seconds of inactivity

Я бы хотел иметь возможность использовать LS при использовании команды SFTP в Unix, но, что наиболее важно, он мне нужен для работы с FileZilla.

Вот описание текущей настройки:

/ и т.д. / SSH / sshd_config

Subsystem    sftp    internal-sftp

Match Group sftp_users
    X11Forwarding no
    AllowTcpForwarding no
    ChrootDirectory /var/sftp/%u
    ForceCommand internal-sftp

Пользователь grep / etc / passwd

user:x:500:500::/var/sftp/user/incoming:/sbin/nologin

группы пользователей

user : user sftp_users

ll / | grep var

drwxr-xr-x root root var

ll / var | grep sftp

drwxr-xr-x root root sftp

ll / var / sftp | пользователь grep

drwxr-xr-x root root user

ll / var / sftp / пользователь

drwxrwxr-x user sftp_users incoming
drwxrwxr-x user sftp_users outgoing

Все, что я прочитал, говорит о том, как это должно быть установлено, поэтому, пожалуйста, дайте мне знать, что мне не хватает. Я просто не могу заставить его работать должным образом.

Спасибо за ваше время.

[Редактировать:]

Я использовал эту команду для изменения домашнего каталога моего пользователя;

usermod -d /incoming

таким образом он попадет в / incoming, а не на полный путь к каталогу, как это было раньше.

Пользователь grep / etc / passwd

user:x:500:500::/incoming:/sbin/nologin

ls -lrtd / var / sftp / пользователь / входящий

drwxrwxr-x user sftp_users /var/sftp/user/incoming

sshd_config

#Subsystem      sftp    /usr/libexec/openssh/sftp-server
Subsystem       sftp    internal-sftp -f AUTH -l INFO

Match Group sftp_users
        ChrootDirectory /var/sftp/%u
        ForceCommand internal-sftp

Однако я все еще получаю те же ошибки при использовании команды SFTP в UNIX и FileZilla в Windows.

Я добавил ведение журнала уровня отладки в конфигурацию sshd, но сообщения не заполняются в файле / var / log / messages ни для кого, кроме пользователя root. Так что этот маршрут в настоящее время не работает. Также файл / var / log / secure не показывает ошибок с аутентификацией SFTP и запуском сеанса.

Вывод SFTP

[root@...]# sftp user@localhost
Connecting to localhost...
user@localhost's password:
sftp> ls
Couldn't get handle: Permission denied
sftp> cd ..
sftp> cd incoming
Couldn't canonicalise: Permission denied
sftp> quit
[root@...]#