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

Символическая ссылка и filezilla поверх sftp

Я новичок в debian и пытаюсь настроить сервер.

Я создал пользователя, который может получить доступ только к своей папке /home/username (и его подкаталог).

Теперь я хочу использовать этого пользователя для веб-сервера, который я настроил, и я дал ему доступ к /var/www но я не вижу /var/www через sftp, и я сделал символическую ссылку вот так:

root@server:/home/username# ln -s /var/www www
root@server:/home/username# cd www
root@server:/home/username/www# chown username:username *

Теперь, с помощью filezilla, я могу видеть такую ​​папку www:

Но когда я пытаюсь его открыть, получаю вот что:

Что я делаю не так?

Скорее всего, SFTP находится в режиме chroot, поэтому каталог / var / www недоступен для пользователя в chroot jail.

Смотреть в /etc/ssh/sshd_config и изучите директивы sftp. Вы видите что-то вроде:

Match group sftp
  ChrootDirectory /home/%u
  AllowTcpForwarding no
  ForceCommand internal-sftp

Страница руководства sshd_config Вот.

Обычно, когда пользователь находится в /home/username в SFTP этот каталог становится / и ссылки за пределами /home/username недоступны. Фактически, символическая ссылка вроде ln -s /var/www /home/username/www будет выглядеть так, как будто вы пытаетесь достичь /home/username/var/www (т.е. /home/username сейчас / так что любая ссылка, которая ссылается /var/www также должен быть подкаталогом /home/username в контексте chroot).

В качестве решения вы можете отключить chroot (но это будет иметь другие последствия для безопасности, в основном, когда пользователи SFTP полностью контролируют вашу файловую систему). Вы можете смонтировать / var / www в / home / username / www (что-то вроде mount --bind /var/www /home/username/www (проверьте свою документацию для mount), который должен работать, как и следовало ожидать от chroot). Вы также можете использовать файл sshd_config, чтобы исключить этого конкретного пользователя из chroot (хотя, опять же, с последствиями для безопасности).

Я бы сначала попробовал привязать крепление.

Я решил отключить созданную символическую ссылку и с помощью

root@server:/home/username# mkdir www
root@server:/home/username# mount --bind /home/username/www /var/www

(даже если я потерял все, что было в / var / www, но мне все равно)

Спасибо всем!