Символічне посилання та filezilla через 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 зберігається в хронічному режимі, так що каталог / var / www не буде доступний для користувача у в'язниці chroot.

Загляньте /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 за кріплення - прив’язати!
Helge Klein

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, але мені все одно)

Дякую всім!


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

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