Example #1
0
 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()