Link symboliczny i filezilla przez sftp

15

Jestem całkiem nowym debianem i próbuję skonfigurować serwer.

Utworzyłem użytkownika, który ma dostęp tylko do swojego folderu /home/username(i jego podkatalogu).

Teraz chcę użyć tego użytkownika do skonfigurowanego serwera WWW i dałem mu dostęp, /var/wwwale nie widzę /var/wwwprzez sftp i zrobiłem taki symboliczny link:

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

Teraz, dzięki filezilla, widzę folder www taki jak ten:

Filezilla

Ale kiedy próbuję go otworzyć, otrzymuję to:

otwarty

Co robię źle?

Doc
źródło

Odpowiedzi:

22

Prawdopodobnie SFTP jest chrootowany, więc katalog / var / www nie jest dostępny dla użytkownika w więzieniu chroot.

Zajrzyj /etc/ssh/sshd_configi sprawdź dyrektywy sftp. Czy widzisz coś takiego:

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

Strona podręcznika sshd_config jest tutaj .

Zasadniczo, gdy użytkownik jest w /home/usernameSFTP, katalog ten staje się, /a odwołania poza nim /home/usernamenie są dostępne. W rzeczywistości dowiązanie symboliczne ln -s /var/www /home/username/wwwbędzie wyglądało tak, jakbyś próbował do niego dotrzeć /home/username/var/www(tzn. /home/usernameTeraz jest to /więc dowolny link, do którego odniesienia /var/wwwmuszą być również podkatalogiem /home/usernamew kontekście chroot).

Jako rozwiązanie możesz wyłączyć chroota (ale będzie to miało inne konsekwencje dla bezpieczeństwa, głównie z tym, że użytkownicy SFTP mają pełną kontrolę nad systemem plików). Możesz wykonać montowanie w pętli / var / www w / home / nazwa użytkownika / www (coś w rodzaju mount --bind /var/www /home/username/www(sprawdź dokumentację mount), które powinno działać tak, jak można się tego spodziewać pod chroot). Możesz także zrzucić plik sshd_config, aby wykluczyć tego konkretnego użytkownika z chroot (choć znowu, z implikacjami dla bezpieczeństwa).

Najpierw spróbuję zamontować oprawę.

cjc
źródło
2
+1 za wierzchowca - wiążąca sztuczka!
Helge Klein,
1
Jeśli chcesz, aby był trwały podczas restartów, edytuj go /etc/fstabza pomocą linii podobnej do/home/username/www /var/www none bind 0 0
pzkpfw
0

Rozwiązałem rozłączenie dowiązania symbolicznego, które utworzyłem iz którym

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

(nawet jeśli straciłem wszystko było w / var / www, ale mnie to nie obchodzi)

Dziękuje wszystkim!

Doc
źródło
Nic nie straciłeś. Po prostu odmontuj i skopiuj pliki przed ponownym zamontowaniem.
Zoredache
uuuhhh dziękuję! nie miałem nic oprócz 1 pliku z linkiem, nic ważnego, ale nie mogłem wymyślić, aby go odzyskać: D
Doc