Я знаю, что на этот вопрос уже был дан ответ, но, честно говоря, все ответы не имеют абсолютно никакого смысла в моем случае использования. Я размещаю приложение Laravel на своем сервере Ubuntu и создал отдельного пользователя ларавель
и клонировал мое приложение в; /var/www/мое-приложение
.
По сути, я хочу включить SFTP для /var/www/мое-приложение/хранилище/приложение
чтобы я мог загружать файлы для обработки в своем веб-приложении. Безопасность не является большой проблемой, поскольку это приложение будет размещено только во внутренней сети без внешнего доступа.
Это журнал, который я получаю /var/log/auth.log
при попытке подключения через SFTP.
31 марта 13:11:35 ubuntu sshd[40819]: pam_unix(sshd:session): сеанс открыт для пользователя laravel пользователем (uid=0)
31 марта 13:11:35 Ubuntu systemd-logind[823]: новый сеанс 42 пользователя laravel.
31 марта 13:11:35 ubuntu sshd [40907]: фатально: неправильное владение или режимы для компонента каталога chroot "/var/www/my-app/"
31 марта 13:11:35 ubuntu sshd [40819]: pam_unix (sshd: session): сеанс закрыт для пользователя laravel
31 марта 13:11:35 Ubuntu systemd-logind[823]: сеанс 42 вышел из системы. Ожидание завершения процессов.
31 марта 13:11:35 ubuntu systemd-logind[823]: удален сеанс 42.
Большинство ответов в Интернете, чтобы решить эту проблему, говорят, что вам нужно убедиться, что root владеет папкой. Однако меня беспокоит то, что мой пользователь ларавель
ПОТРЕБНОСТИ владеть /var/www/мое-приложение
в противном случае он получит ошибки разрешения при записи файлов журнала, чтении файлов и т. д. Я уже потратил достаточно времени на это и решил его, и я действительно не хочу снова спускаться в эту кроличью нору, потому что это было невероятно напряжно.
Все, что я хочу сделать, это позволить пользователю войти через SFTP в папку /var/www/мое-приложение/хранилище/приложение
и иметь возможность загружать/удалять файлы. Как я уже сказал, безопасность не является большой проблемой из-за внутренней сети, поэтому я не возражаю просто войти в систему с ларавель
пользователя вместо создания нового, так как я действительно больше не понимаю разрешения в Linux, поскольку это кажется бессмысленным. Кажется довольно глупым, что для того, чтобы дать пользователю ларавель
Разрешение SFTP на загрузку/загрузку, я должен начать возиться с root и давать права root на случайные папки, когда я даже не хочу, чтобы root владел ими, я хочу ларавель
иметь право собственности на них и все.
Любая помощь приветствуется. Спасибо.