У меня есть некоторые пользователи на моем сервере Ubuntu с vsftpd
установленный.
Сервер используется в качестве веб-сервера и имеет общий sftp каталог, к которому получают доступ общедоступные клиенты (путем предоставления им пользователя и пароля).
Из-за той архитектуры, моя цель состояла в том, чтобы ограничить общедоступного пользователя клиента, чтобы получить доступ к его корневому каталогу только и ограничить доступ к другим каталогам. Я сделал это использование ChrootDirectory следующим образом:
/home/public_sftp/
/home/public_sftp
принадлежит корню/home/public_sftp
, существует два директора, принадлежавшие public_sftp:www-даннымИзменитесь /etc/ssh/sshd_config
и добавьте в конце
Match group sftponly
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp -u 73
Это работает превосходное, за исключением скрипта, который я должен запустить с другого сервера с помощью www-пользователя-данных. При завтраке того сценария, который соединится с sftp сервером с www-пользователем-данных, я добираюсь:
Write failed: Broken pipe
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(605) [sender=3.0.9]
Домашний dir моего www-пользователя-данных /var/www/
и rsync сценарий пытается записать в подкаталоге из /var/www
.