Я создал пользователя MY_USER. Установите его домашний каталог в / var / www / RESTRICTED_DIR, по которому он должен быть ограничен. Затем я отредактировал sshd_config и установил:
Match user MY_USER
ChrootDirectory /var/www/RESTRICTED_DIR
Затем я перезапустил SSH. Сделал MY_USER владельцем (и владельцем группы) RESTRICTED_DIR и изменил его значение на 755. Я получаю
Accepted password for MY_USER
session opened for user MY_USER by (uid=0)
fatal: bad ownership or modes for chroot directory component "/var/www/RESTRICTED_DIR"
pam_unix(sshd:session): session closed for user MY_USER
Если я удалил 2 строки из sshd_config, пользователь сможет успешно войти в систему. Конечно, он может получить доступ ко всему серверу. В чем проблема? Я даже пытался прикрепить RESTRICTED_DIR к руту (когда я где-то читал, что кто-то решил эту проблему, делая это). Не повезло..
/
,/var
,/var/www
, и/var/www/RESTRICTED_DIR
все должны отвечать требованиям безопасности выше). Это настоящий chroot (просмотрите man-страницу) - домашний каталог вашего пользователя должен существовать внутри chroot , как/bin
и все другие вещи, которые понадобятся вашему пользователю ...sudo chown root:root -R /path/to/home; sudo chmod 755 -R /path/to/home
/var/www
пути напрямую, что может нарушить работу Apache, было бы гораздо лучше переместить каталог sftp в другой путь, а затем использовать сопоставление URL-адресов в Apache для указания на другой каталог. , Проверьте документацию здесь httpd.apache.org/docs/2.4/urlmapping.html в разделеFiles Outside DocumentRoot
Каталог ChrootDirectory должен принадлежать пользователю root и иметь режим 755:
Хорошо, теперь все файлы в
/var/www/RESTRICTED_DIR
собственностиMY_USER
должны принадлежатьwww-data
группе , которая должна принадлежать группе, и иметь режим 775 для разрешения групповых прав доступа, например так:ПРИМЕЧАНИЕ. Помните, что рекомендуется настраивать доступ только к папке htdocs, если вы настраиваете Apache.
источник
sudo usermod -a -G www-data MY_USER
как группа должна прийти после-G
После некоторого устранения неполадок сегодня я понял, что root также должен иметь возможность записи в каталоги.
Следующее не сработало:
Как только я это исправил, мой chroot начал работать.
источник