def _start_internal(self): self._boss.curproc = 'b10-sockcreator' self.__creator = isc.bind10.sockcreator.Creator(LIBEXECPATH + ':' + os.environ['PATH']) self._boss.register_process(self.pid(), self) self._boss.set_creator(self.__creator) self._boss.log_started(self.pid()) if self.__gid is not None: logger.info(BIND10_SETGID, self.__gid) posix.setgid(self.__gid) if self.__uid is not None: logger.info(BIND10_SETUID, self.__uid) posix.setuid(self.__uid)
page = self._retrieve_page(filename) if not page.writable_for(self.user): raise FtpResponse(550, 'Delete permission denied') page.delete(self.user) self.commit_transaction() self.log_action('dele', [filename]) if __name__ == '__main__': def arg(n, d): if len(sys.argv) > n: return sys.argv[n] else: return d hostname = arg(1, '127.0.0.1') portnumber = int(arg(2, '8021')) Core.init_pyle() print 'Listening on %s:%d' % (hostname, portnumber) svr = FtpServer.FtpServer((hostname, portnumber), PyleFtpFS, bannerText = 'Pyle FTP service ready.') if posix.getuid() == 0: print "Running as root, suing to " + Config.ftp_server_user import pwd try: posix.setuid(pwd.getpwnam(Config.ftp_server_user)[2]) except KeyError: print "Cannot su to " + Config.ftp_server_user + "!" svr.serve_forever()