Итак, я пытаюсь сделать следующее. У меня есть сервер Ubuntu DigitalOcean с ключами SSH по умолчанию.
Мне нужно создать другого пользователя, который должен иметь доступ только к /var/www/mysite.com/public/b
папка. Мой процесс был следующим:
1. Создание нового пользователя с помощью следующей команды:
Добавить пользователя
--home /var/www/mysite.com/public/b
--shell /бин/баш
--no-создать-дом
--ingroup www-данные
--ingroup ssh
тестовый пользователь
2. Затем, поскольку я не был уверен, как справиться с этим с парой ключей, я включил вход с паролем через SSH в файле sshd_config следующим образом:
Аутентификация по паролю да
3. После этого я смог открыть сайт как через SSH, так и через SFTP с комбинацией пользователя и пароля, но пользователь имел доступ ко всему.
4. Я попытался использовать это внутри sshd_config, чтобы ограничить пользователя его домашней папкой:
Подсистема sftp внутренний-sftp
......
Совпадение с пользователем testuser
ChrootDirectory /var/www/mysite.com/public/b
X11Номер переадресации
AllowTcpForwarding нет
ForceCommand внутренний-sftp
5. После добавления этой части я больше не мог войти через SSH.
я проверил /var/log/auth.log
файл, и ошибка, связанная с этим, была:
фатально: неправильное владение или режимы для компонента каталога chroot "/var/www/mysite.com/"
Право собственности на мой сайт www-данные: корень
по всем папкам.
Разрешения такие:
]
Еще одна проблема, с которой я столкнулся, заключалась в том, что даже когда мне удалось подключиться, я не смог ничего загрузить, даже после добавления пользователя в корневую группу ничего не изменилось.Я пробовал владеть папкой с www-data:www-data, но разницы не было.
Есть простой способ сделать это?