Я новичок в 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, но мне все равно)
Спасибо всем!