Вы можете получить FTP-сервер так же просто, как один два три с помощью pyftpdlib: Установить с помощью pip pip install --user pyftpdlib Запустить с python -m pyftpdlib, добавить -w, если вы хотите также получить доступ на запись. нет третьего шага :)
Теперь у вас есть ftp-сервер, с которого вы можете войти в анонимный доступ к своему домашнему каталогу.
Эта команда:
python -m pyftpdlib --directory=FTP --port=2121 --write
будет обслуживать, без привилегий root, на порту 2121 и предоставить доступ для анонимных пользователей. Он также будет использовать каталог FTP в текущем рабочем каталоге вместо вашего дома. Введите python ftpserver.py --help, чтобы получить информацию обо всех параметрах.
войдите в него в anonymous@localhost:2121/
Обратите внимание, что это программное обеспечение выпущено под условиями pyftpdlib , которое означает, что вы можете делать в основном то, что вам нравится. Прочитайте текст лицензии, это всего лишь несколько строк и узнайте свои права.
Теперь этот скрипт не поддерживает имя пользователя и пароль как часть его автономной функции ( по соображениям безопасности, я думаю).
Итак, я добавил эту функцию:
войдите в нее в anonymous@localhost:2121/У вас теперь есть все параметры, которые я упомянул, параметры командной строки
--username=USERNAME и --password=PASSWORD:
python ftpserver.py --port=2121 --username=ftpuser --password=3r2u389r2u333j
Опять же, используйте --help, чтобы увидеть их
Это должно быть так же просто, как и получается.
Я также написал немного gui для этого:
Загрузите его здесь (обновлено в версии 6). Мне жаль, что длина его составляет 3999 строк, но он сделает все, что делает оригинал. И я хотел сохранить все в одном файле. Когда он запускается без каких-либо параметров (то есть сделайте его исполняемым и дважды щелкните по нему или создайте для него пусковую установку), он запустит немного gui для настройки вашего сервера. Вы все равно можете импортировать его как модуль python или использовать приведенную выше командную строку fu. Известные проблемы: я не беспокоился ни о чем другом, кроме порта 2121. Это должно быть простым, поэтому для конфигурирования порта требуется сложная обработка ошибок, с которой я не хочу, чтобы пользователь беспокоился. 2121 должен всегда работать нормально. Он не будет предупреждать вас, как и в командной строке, об использовании небезопасной конфигурации. То есть не устанавливая пароль или что-то в этом роде.
EDIT: поскольку API pyftpdlib и ftpserver.py изменен (и ссылки на wabuntu pastebin исчезли); большинство из вышеперечисленных сообщений больше не работают. Для версии pyftpdlib (2014) используйте этот скрипт (ftpserver-cli.py) для достижения того же, что и выше:
#!/usr/bin/env python
# ftpserver-cli.py
import sys
sys.path.append("/path/to/pyftpdlib-svn") # enter your proper path here
import argparse
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
def processCmdLineOptions():
global optparser
optparser = argparse.ArgumentParser(description="ftpserver-cli",
formatter_class=argparse.RawDescriptionHelpFormatter)
optparser.add_argument('-u', '--username', action='store', type=str,
default="user", help="username")
optparser.add_argument('-p', '--password', action='store', type=str,
default="12345", help="password")
optparser.add_argument('-t', '--port', action='store', type=int,
default="21", help="port")
optparser.add_argument('-d', '--directory', action='store', type=str,
default="/home/stefano/Projekte/", help="port")
optargs = optparser.parse_args(sys.argv[1:]) #(sys.argv)
return optargs
optargs = processCmdLineOptions()
print("Using: user: %s pass: %s port: %d dir: %s" % (optargs.username, optargs.password, optargs.port, optargs.directory))
authorizer = DummyAuthorizer()
authorizer.add_user(optargs.username, optargs.password, optargs.directory, perm="elradfmw")
#authorizer.add_anonymous("/home/nobody")
handler = FTPHandler
handler.authorizer = authorizer
server = FTPServer(("127.0.0.1", optargs.port), handler)
server.serve_forever()
вызов с:
$ sudo python ftpserver-cli.py --directory=/tmp/srvtest
Using: user: user pass: 12345 port: 21 dir: /tmp/srvtest
[I 14-03-02 21:40:57] >>> starting FTP server on 127.0.0.1:21, pid=19286 <<<
...
Нашел это. Это может помочь!
Первоначально На форуме Ubuntu. Проблема не повторилась со мной после отключения визуальных эффектов (Compiz Fusion). У меня нет никаких шагов к надежности, чтобы воспроизвести проблему; поэтому, я не уверен, что он решен или нет.
Попробуйте отключить визуальные эффекты:
щелкните правой кнопкой мыши на рабочем столе и выберите «сменить фон рабочего стола». Перейдите на вкладку «Визуальные эффекты». Измените его на none.Это значение для каждого пользователя и (насколько мне известно) должно быть изменено для каждого пользователя с помощью машины.
Вы сделали чистую установку 13.04 или просто обновили более 12.04? Рекомендуется делать чистую установку, так как многие вещи меняются между версиями. На самом деле 13.04 поставляется с множеством изменений, вы должны попытаться установить make clean install (в случае, если вы этого не сделали).
Я вижу, что вы используете команду «shutdown» без везения ... Вы пытались с «sudo halt», все равно вам нужно использовать терминал, но AFAIK «halt» должен делать трюк.
Попробуйте использовать приведенную ниже ссылку. Я просмотрел его онлайн, и у автора есть интересная статья об устранении неполадок при завершении работы в верхней части веб-страницы. Он упоминает о просмотре ваших файлов журналов для сообщений об ошибках, связанных с вашими проблемами выключения и перезапуска, и другими вещами, о которых я бы не подумал при попытке устранить проблему вроде этого.
http: // www .brighthub.com / вычислительное / Linux / статьи / 39504.aspx