W świecie Ubuntu wydaje się, że albo zawsze uruchamiasz serwer FTP, albo nigdy tego nie robisz. Być może jestem pierwszym analitykiem sieci, który chce sflashować obraz Cisco, Checkpoint lub Nokia za pomocą Ubuntu ... Potrzebuję serwera FTP na około 5 minut, nie więcej.
Szukam serwera FTP zainicjowanego przez użytkownika. Rozumiem, że prawdopodobnie będzie musiał działać z sudo. W porządku - ale chcę go uruchomić / zatrzymać jak normalny program.
Na platformie Windows takie narzędzia to kilkanaście groszy - od lat korzystam z 3CDaemon i ostatnio znalazłem CoreFTP. Oba są doskonałe. Skonfiguruj użytkownika, skieruj go na katalog, a następnie naciśnij przycisk „Start”. Kilka minut później generalnie skończyłeś i naciskasz przycisk „Stop”. Zadanie wykonane.
Wydaje się, że takie narzędzia nie istnieją na Ubuntu. Znalazłem projekt Google Code, który dość dobrze tworzy instancję TFTP (zakładając, że nadal działa - nie korzystałem z niej przez około rok, a Python się uruchomił), ale co z FTP? Coś tam jest?
Odpowiedzi:
Za pomocą pyftpdlib możesz uzyskać serwer FTP tak łatwy jak jeden dwa trzy :
pip install --user pyftpdlib
python -m pyftpdlib
, dodaj,-w
jeśli chcesz również dostęp do zapisu.Masz teraz serwer ftp, który możesz zalogować się, aby anonimowo udostępnić swój katalog domowy. Jest to raczej test modułu, ale robi to, co mówi na puszce.
To polecenie:
będzie obsługiwał, bez uprawnień roota, port 2121 i zapewni dostęp do zapisu anonimowym użytkownikom. Będzie także używał katalogu
FTP
w bieżącym katalogu roboczym zamiast twojego domu. Wpisz,python ftpserver.py --help
aby uzyskać informacje o wszystkich opcjach.anonymous@localhost:2121/
Należy pamiętać, że to oprogramowanie jest wydawane na warunkach licencji MIT , co oznacza, że możesz robić w zasadzie, co tylko chcesz. Przeczytaj tekst licencji, to tylko kilka wierszy i poznaj swoje prawa.
Teraz ten skrypt nie obsługuje nazwy użytkownika i hasła w ramach jego samodzielnej funkcjonalności (wydaje mi się, że ze względów bezpieczeństwa).
Więc dodałem tę funkcję:
Oprócz wszystkich wymienionych powyżej opcji masz teraz parametry wiersza polecenia
--username=USERNAME
i--password=PASSWORD
:Ponownie użyj,
--help
aby zobaczyć je wszystkie.To powinno być tak proste, jak to możliwe.
Napisałem też dla niego trochę GUI:
Pobierz go tutaj (zaktualizowano w wersji 6)
Przepraszam, że ma 3999 linii, ale zrobi wszystko, co robi oryginał. I chciałem zachować to wszystko w jednym pliku. Kiedy zostanie uruchomiony bez żadnych parametrów (tj. Sprawi, że będzie wykonywalny i kliknie go dwukrotnie, lub utworzy dla niego program uruchamiający ), uruchomi małe GUI do skonfigurowania serwera. Nadal możesz go zaimportować jako moduł python lub użyć powyższego wiersza polecenia fu.
Znane problemy:
Nie przejmowałem się niczym innym niż portem 2121. To powinno być proste, konfigurowanie portu wymaga złożonej obsługi błędów, z którymi nie chcę się przejmować. 2121 powinien zawsze działać dobrze.
Nie ostrzega cię, podobnie jak w wierszu poleceń, o używaniu niepewnej konfiguracji. Nie ustawiam hasła ani czegoś takiego.
EDYCJA: od momentu zmiany interfejsu API
pyftpdlib
iftpserver.py
zmiany (i brakuje łączy pastebin ubuntu); większość powyższego postu już nie działa. W przypadku wersji (2014)pyftpdlib
użyj tego skryptu (ftpserver-cli.py
), aby osiągnąć to samo, co powyżej:Zadzwoń z:
źródło
Możesz użyć pure-ftpd
Możesz użyć scp, jeśli masz serwer ssh.
źródło
postinst
skrypt w pakiecie.)Dla tych, którzy kopiują pliki do iz routerów, możesz wypróbować to narzędzie: tftpgui
To działało dla mnie i jest bardzo łatwe do skonfigurowania. Jest to również skrypt w języku Python, ale robi tftp zamiast ftp. Wszystko, co musisz zrobić, to zainstalować python-tk i pobrać skrypt
Jedyną rzeczą, o której należy pamiętać, jest to, że Ubunutu ma domyślnie Phython2, więc najlepszym sposobem na uruchomienie skryptu jest:
Następnie możesz go skonfigurować w GUI. kiedy skończysz, naciśnij exit i to wszystko.
Bo
źródło