2013-09-18 2 views
0

Я читаю код платформы ftp на основе pyftpdlib, и этот код не может работать на моем Linux. Я использую sudo для обеспечения разрешения.pyftpdlib сделать разрешение os.makedirs запрещено

Когда pyftpdlib запускает мой код, а затем мой код запускает os.makedirs, и это вызывает ошибку разрешения.

Я могу запустить его в другом коде python без pyftpdlib.

Это Traceback:

File "/usr/lib64/python2.7/asyncore.py", line 83, in read 
    obj.handle_read_event() 
    File "/usr/lib64/python2.7/asyncore.py", line 444, in handle_read_event 
    self.handle_read() 
    File "/usr/lib64/python2.7/asynchat.py", line 158, in handle_read 
    self.found_terminator() 
    File "pyftpdlib/ftpserver.py", line 2230, in found_terminator 
    self.process_command(cmd, arg) 
    File "pyftpdlib/ftpserver.py", line 2296, in process_command 
    method(*args, **kwargs) 
    File "pyftpdlib/ftpserver.py", line 3193, in ftp_PASS 
    rst = self.authorizer.validate_authentication(self.username, line) 
    File "ftp9/auth.py", line 42, in validate_authentication 
    self._group_info.update(api) 
    File "ftp9/group.py", line 64, in update 
    self._update_fs() 
    File "ftp9/group.py", line 143, in _update_fs 
    walk(self._root, config.FTP_ROOT) 
    File "ftp9/group.py", line 141, in walk 
    walk(i, pjoin(rootdir, i.name)) 
    File "ftp9/group.py", line 125, in walk 
    os.makedirs(pjoin(rootdir, i)) 
    File "/usr/lib64/python2.7/os.py", line 157, in makedirs 
    mkdir(name, mode) 
    OSError: [Errno 13] Permission denied: '/data/ftp/\xe6\x9c\xac\xe7\xa7\x91\xe7\x94\x9f/1997\xe7\xba\xa7' 
+0

Можете ли вы показать точный код, который вы пытались запустить, пожалуйста? – ChrisProsser

ответ

0

Этот код будет работать на Linux пользователя «FTP», поэтому он не имеет доступа к папке. вы должны chown дать разрешение.

Смежные вопросы