Назад | Перейти на главную страницу

Linux SFTP-доступ к / var / www

Я запускаю сервер LAMP Ubuntu 12.04.1, и я пытаюсь заставить пользователя читать и писать FTP-доступ к / var / www.

Сначала я установил vsftpd и установил write_enable = YES и chroot_local_user = YES в vsftpd.conf, затем добавил следующий абзац в / etc / ssh / sshd_config:

Subsystem sftp internal-sftp

Match group sftponly
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no

А также комментируем:

#Subsystem sftp /usr/lib/openssh/sftp-server

После этого я перезапустил SSH и VSFTPD, а затем установил права доступа к файлам на / var / www следующим образом:

chown -R root /var/www
chgrp -R www-data /var/www

Первые два устанавливают пользователя и владельца группы.

chmod -R 775 /var/www

Затем они определяют разрешения (пользователь и группа имеют право на чтение, запись и выполнение)

Затем я создаю пользователя и добавляю его в группы sftponly и www-data.

adduser test
usermod -aG www-data test
usermod -aG www-data test

И установите их домашний каталог в / var / www

usermod -d /var/www test

Как только это будет сделано, я не смогу подключиться к SFTP, если не сделаю следующее:

chmod g-w /var/www

Это означает, что www-data (а также мой пользователь) не может писать в папку www, но может писать во все последующие папки, чего недостаточно.

Я также не могу изменить пользователя-владельца папки www, так как это также препятствует успешному соединению с SFTP.

Я просто хочу знать, почему я не могу подключиться к SFTP, если у группы есть доступ на запись, но может, если нет?

Я поискал в сети и нашел кое-что интересное: http://www.thegeekstuff.com/2012/03/chroot-sftp-setup/

в нем говорится, что ваш пользователь homedir должен быть: / или у вас должны быть символические ссылки в каталоге / var / www примерно так:

cd /var/www ; ln -s var . ; ln -s www .

потому что пользователь chrooted и ищет его домашний адрес: / var / www в / var / www

надеюсь, это поможет вам.