def add_anonymous(self, homedir=None, realuser="******", **kwargs): """Add an anonymous user to the virtual users table. - (string) homedir: The anonymous user home directory. If this is not specified the "realuser" home directory will be determined (if any) and used. - (string) realuser: specifies the system user to use for managing anonymous sessions. On some UNIX systems "ftp" is available and usually used by end-user FTP servers but it can vary (e.g. "nobody"). - (dict) **kwargs: the same keyword arguments expected by the original add_user method: "perm", "msg_login" and "msg_quit". """ users = [entry.pw_name for entry in pwd.getpwall()] if not realuser in users: raise AuthorizerError('No such user "%s".' % realuser) if not homedir: homedir = pwd.getpwnam(realuser).pw_dir self._dynamic_home_users.append(realuser) DummyAuthorizer.add_anonymous(self, homedir, **kwargs) self._anon_user = realuser
def main(): authorizer = DummyAuthorizer() authorizer.add_user('user', '12345', '.', perm='elradfmw') authorizer.add_anonymous('.') handler = AntiFloodHandler handler.authorizer = authorizer ftpd = FTPServer(('', 21), handler) ftpd.serve_forever(timeout=1)