Я только что настроил свой 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 и все родительские каталоги должны быть правильно установлен:
chmod 755
)В вашем случае ошибку входа в систему можно исправить с помощью 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-каталога.