Символьная ссылка и filezilla over sftp


15

Я довольно новичок в 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 следующим образом:

Filezilla

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

открыто

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

Ответы:


22

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

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

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

Справочная страница sshd_config находится здесь .

По сути, как только пользователь входит в /home/usernameSFTP, этот каталог становится, /а внешние ссылки /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 (хотя, опять же, с последствиями для безопасности).

Сначала я бы попробовал крепление.


2
+1 за маунта - связать трюк!
Хельге Кляйн

1
Если вы хотите, чтобы он был постоянным при перезагрузках, отредактируйте его /etc/fstabс помощью строки вроде/home/username/www /var/www none bind 0 0
pzkpfw

0

Я решил отменить ссылку, которую я сделал, и с

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

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

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


Вы ничего не потеряли. Просто размонтируйте и скопируйте ваши файлы, прежде чем перемонтировать.
Зоредаче

ууууу спасибо! у меня не было ничего, кроме 1 файла со ссылкой, ничего важного, но я не мог найти его для восстановления: D
Doc
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.