Я пытаюсь создать каталог для загрузки на своем сервере, и мне очень трудно это сделать. Загрузки в каталог должны быть доступны для всех других пользователей системы, но учетная запись пользователя, которая будет использоваться для загрузки, не должна иметь доступа вообще (кроме загрузки, то есть), поэтому я изменяю учетную запись uploaduser только в свой каталог. Я использую FTP через SSH из соображений политики, и у меня следующая настройка:
ЗАГРУЗИТЬ КАТАЛОГ:
/var/uploads/uploaduser/
(Я использую это, потому что учетная запись uploaduser не является обычной учетной записью и не должна рассматриваться как таковая; однако я широко открыт для других предложений относительно того, как это сделать.)
Разрешения устанавливаются следующим образом:
/var/
drwxr-xr-x 25 root root 4096 Mar 30 10:04 var/
/var/uploads
drwxr-xr-x 3 root root 4096 Mar 23 12:22 uploads/
/var/uploads/uploaduser
drwx---r-x 3 root root 4096 Apr 4 10:14 uploaduser/
Теперь, когда я использую FileZilla или любой другой клиент для загрузки файлов в каталог uploaduser, я получаю ошибку «доступ запрещен». ОДНАКО, если я изменю владельца каталога uploaduser или изменю его разрешения, я получаю эту ошибку:
Couldn't read packet: Connection reset by peer
Кажется, это ситуация типа «будь проклят, если не сделаешь».
У меня есть следующая настройка в /etc/ssh/sshd_config
:
Match user uploaduser
ChrootDirectory /var/uploads/destiny/
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp
Я использую VSFTP, и он отлично работает для всех других приложений, использующих FTP через SSH.
ETA: Я использую экземпляр Amazon EC2 в качестве своего веб-сервера, и на нем работает AMI Amazon Linux.
Я просто учусь этому прямо сейчас и думаю, что у меня только что есть горб, к которому вы пришли.
Во-первых, ваш каталог загрузки не соответствует вашему ChrootDirectory
. Я предполагаю, что это опечатка.
Я пришел научиться некоторым вещам:
Теперь используя ChrootDirectory
...
ChrootDirectory
называется content
(например) /var/uploads/uploaduser/content
Насколько я понимаю ...
ChrootDirectory
/home
они смогут видеть все пользовательские каталоги (правда, без прав доступа)Надеюсь это поможет. Если кто-нибудь знает, как сделать тюрьму доступной для записи, мне было бы интересно узнать!