def mypass(self, act): conf_file = '/etc/my.cnf' conf_file_bak = '/etc/my.cnf.bak' if os.path.getsize(conf_file) > 2: public.writeFile(conf_file_bak, public.readFile(conf_file)) public.set_mode(conf_file_bak, 600) public.set_own(conf_file_bak, 'mysql') elif os.path.getsize(conf_file_bak) > 2: public.writeFile(conf_file, public.readFile(conf_file_bak)) public.set_mode(conf_file, 600) public.set_own(conf_file, 'mysql') public.ExecShell("sed -i '/user=root/d' {}".format(conf_file)) public.ExecShell("sed -i '/password=/d' {}".format(conf_file)) if act: password = public.M('config').where('id=?', (1, )).getField('mysql_root') mycnf = public.readFile(conf_file) if not mycnf: return False src_dump_re = r"\[mysqldump\][^.]" sub_dump = "[mysqldump]\nuser=root\npassword=\"{}\"\n".format( password) mycnf = re.sub(src_dump_re, sub_dump, mycnf) if len(mycnf) > 100: public.writeFile(conf_file, mycnf) return True return True
def set_pma_access(): try: pma_path = get_pma_path() if not pma_path: return False if not os.path.exists(pma_path): return False pma_tmp = pma_path + '/tmp' if not os.path.exists(pma_tmp): os.makedirs(pma_tmp) nginx_file = '/www/server/nginx/conf/nginx.conf' if os.path.exists(nginx_file): nginx_conf = public.readFile(nginx_file) if nginx_conf.find('/tmp/') == -1: r_conf = '''/www/server/phpmyadmin; location ~ /tmp/ { return 403; }''' nginx_conf = nginx_conf.replace('/www/server/phpmyadmin;',r_conf) public.writeFile(nginx_file,nginx_conf) public.serviceReload() apa_pma_tmp = pma_tmp + '/.htaccess' if not os.path.exists(apa_pma_tmp): r_conf = '''order allow,deny deny from all''' public.writeFile(apa_pma_tmp,r_conf) public.set_mode(apa_pma_tmp,755) public.set_own(apa_pma_tmp,'root') public.ExecShell("chmod -R 700 {}".format(pma_tmp)) public.ExecShell("chown -R www:www {}".format(pma_tmp)) return True except: return False
def upload(self, args): if sys.version_info[0] == 2: args.f_name = args.f_name.encode('utf-8') args.f_path = args.f_path.encode('utf-8') if args.f_name.find('./') != -1 or args.f_path.find('./') != -1: return public.returnMsg(False, '错误的参数') if not os.path.exists(args.f_path): os.makedirs(args.f_path, 493) if not 'dir_mode' in args or not 'file_mode' in args: self.set_mode(args.f_path) save_path = os.path.join( args.f_path, args.f_name + '.' + str(int(args.f_size)) + '.upload.tmp') d_size = 0 if os.path.exists(save_path): d_size = os.path.getsize(save_path) if d_size != int(args.f_start): return d_size upload_files = request.files.getlist("blob") f = open(save_path, 'ab') for tmp_f in upload_files: f.write(tmp_f.read()) f.close() f_size = os.path.getsize(save_path) if f_size != int(args.f_size): return f_size new_name = os.path.join(args.f_path, args.f_name) if os.path.exists(new_name): if new_name.find('.user.ini') != -1: public.ExecShell("chattr -i " + new_name) os.remove(new_name) os.renames(save_path, new_name) if 'dir_mode' in args and 'file_mode' in args: mode_tmp1 = args.dir_mode.split(',') public.set_mode(args.f_path, mode_tmp1[0]) public.set_own(args.f_path, mode_tmp1[1]) mode_tmp2 = args.file_mode.split(',') public.set_mode(new_name, mode_tmp2[0]) public.set_own(new_name, mode_tmp2[1]) else: self.set_mode(new_name) if new_name.find('.user.ini') != -1: public.ExecShell("chattr +i " + new_name) public.WriteLog('TYPE_FILE', 'FILE_UPLOAD_SUCCESS', (args.f_name, args.f_path)) return public.returnMsg(True, 'Upload Success!')