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

SFTP фатально неправильное владение или режимы для каталога chroot ubuntu 12.04

Я только что настроил свой SFTP-сервер, и он отлично работает, когда я использую его из своей первой учетной записи. Я хотел добавить пользователя, которого мы назовем «magnarp». Сначала мне понравилось это в sshd_config:

Subsystem sftp internal-sftp


Match group sftponly
    ChrootDirectory /home/%u
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp

Это сработало достаточно хорошо, пользователь magnarp вошел в свой домашний каталог. Затем я попытался добавить к нему символическую ссылку.

home$ sudo ln -s /home/DUMP/High\ Defenition/ /home/magnarp/"High Defenition"

Символическая ссылка работала нормально через SSH, но не через SFTP.

Итак, что я хочу сделать сейчас, так это связать группу Chroot сразу в / home / DUMP, и мне это понравилось:

Match group sftponly
    ChrootDirectory /home/DUMP
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp

Папка DUMP имеет следующие разрешения.

drwxrwxrwx  5 root     root      4096 aug 18 02:25 DUMP

А это код ошибки:

Aug 18 16:40:29 nixon-01 sshd[7346]: Connection from 192.168.1.198 port 51354
Aug 18 16:40:30 nixon-01 sshd[7346]: Accepted password for magnarp from 192.168.1.198 port 51354 ssh2
Aug 18 16:40:30 nixon-01 sshd[7346]: pam_unix(sshd:session): session opened for user    magnarp by (uid=0)
Aug 18 16:40:30 nixon-01 sshd[7346]: User child is on pid 7467
Aug 18 16:40:30 nixon-01 sshd[7467]: fatal: bad ownership or modes for chroot directory "/home/DUMP"
Aug 18 16:40:30 nixon-01 sshd[7346]: pam_unix(sshd:session): session closed for user magnarp

sshd имеет определенный уровень паранойи, когда речь идет о каталогах chroot. Не думаю, что это можно отключить (даже с StrictModes no). Каталог chroot и все родительские каталоги должны быть правильно установлен:

  1. Каталог chroot и все его родительские элементы не должны иметь возможности групповой или мировой записи (т.е. chmod 755)
  2. Каталог chroot и все его родители должны принадлежать root.

В вашем случае ошибку входа в систему можно исправить с помощью chmod 755 /home/DUMP Ваше очевидное намерение создать каталог с возможностью записи для всех, в который sftpuser может входить и каждый может помещать файлы, может быть решено, если сделать этот каталог подкаталогом /home/DUMP/

A) Какой будет смысл делать chroot, если создание simlink поможет избежать chroot? (Любой пользователь может загрузить симлинк, а затем получить доступ ко всей файловой системе)

Б) Еще один chmod 777, и вы будете поражены тео (http://rlv.zcache.com/i_got_flamed_by_theo_de_raadt_t_shirt_tshirt-p235453348828729121en7rf_210.jpg). Видеть http://lists.mindrot.org/pipermail/openssh-unix-dev/2010-January/028151.html чтобы понять, почему openssh так требователен к разрешениям chroot-каталога.