SFTP: pliki dowiązań symbolicznych w uwięzionym (chrootowanym) katalogu

22

Próbuję skonfigurować sftp, aby kilka zaufanych osób mogło uzyskać dostęp do / edytować / tworzyć niektóre pliki. Wsadziłem użytkownika do jego katalogu domowego (/ home / name), ale napotkałem problem. Chcę, aby mogły one również uzyskiwać dostęp do innych części VPS, ponieważ jest to również serwer gier, webhost itp., I chcę, aby mogły mieć pełną kontrolę nad plikami poza ich uwięzionym katalogiem.

Próbowałem utworzyć dowiązanie symboliczne (ln -s) do pożądanego katalogu, ale nie działa zgodnie z oczekiwaniami. Próbowałem (cp -rl) do plików, które chciałem uzyskać dostęp i zadziałało - mogą edytować pliki w swoim katalogu i zmienia ten przechowywany poza więzieniem. ALE nie mogą tworzyć nowych plików (mogą, ale nie będą się aktualizować poza więzieniem). Wiem, że prawdopodobnie nie robię tego „we właściwy sposób”, ale co mogę zrobić, aby zrobić to, co chcę?

dukevin
źródło

Odpowiedzi:

40

Dowiązania symboliczne są czysto symboliczne: zawierają tylko ścieżkę, więc po otwarciu dowiązania symbolicznego system operacyjny odczytuje ścieżkę i używa jej zamiast tego. W środowisku chroot łącza (szczególnie te ze ścieżkami bezwzględnymi) zazwyczaj nie wskazują tego samego miejsca, na które wskazywały w normalnym środowisku.

Jeśli system operacyjny serwera to Linux, najlepszym rozwiązaniem jest podłączenie całego katalogu gdzieś w katalogu chroot. Korzystając z tego, należy pamiętać, że nie jest to kopia katalogu, wszystko usunięte tutaj zostanie usunięte z innego katalogu (ważne, jeśli użytkownik może mvpliki lub rm -rf). Aby to zrobić:

mount --bind /some/directory /somewhere/else

Pliki w katalogu powinny być prawdziwymi plikami. Dowiązania symboliczne tutaj prawdopodobnie będą miały te same problemy, które próbujesz połączyć z plikami w pierwszej kolejności.

DerfK
źródło
Dzięki za odpowiedź. Czy możesz mi wyjaśnić lub wskazać mi samouczek, w jaki sposób mogę to uruchomić? Mam wyłączoną funkcję ssh dla gości, aby mieli dostęp tylko do sftp. W jakim pliku mam to polecenie?
dukevin,
Chociaż nie jest to powszechnie zalecane, możesz również utworzyć twarde linki do katalogów, co byłoby prostsze, ale tylko wtedy, gdy wszystkie pliki znajdują się na tym samym urządzeniu.
Falcon Momot,
Jakie jest na to polecenie
dukevin,
@KevinDuke To nie jest coś, co użytkownicy mogą zrobić sami, tylko root może korzystać w mountten sposób. Może istnieć sposób, aby to określić/etc/fstab więc odbywa się to automatycznie podczas rozruchu, ale nie jestem pewien, jak to
zrobić
1
Dziękuję Ci. Przeczytałem kilka samouczków i wymyśliłem to. Twoja odpowiedź naprawdę pomogła mi wskazać właściwy kierunek. Dzięki! Dla tych, którzy chcą wiedzieć, pomogli: aplawrence.com/Linux/mount_bind.html freebsd.org/doc/en_US.ISO8859-1/books/handbook/… redbottledesign.com/…
dukevin