@@ -82,7 +82,7 @@ def exec_code(self, code_str, keywords, function_name=None):
8282 err = '{"code":500,"msg":str(e),"data":None}'
8383 action_function = f'({ function_name !a} , locals_v.get({ function_name !a} ))' if function_name else 'locals_v.popitem()'
8484 python_paths = CONFIG .get_sandbox_python_package_paths ().split (',' )
85- target_user = f'os.setgid({ pwd .getpwnam (self .user ).pw_gid } );os.setuid({ pwd .getpwnam (self .user ).pw_uid } );' if self .sandbox else ''
85+ set_run_user = f'os.setgid({ pwd .getpwnam (self .user ).pw_gid } );os.setuid({ pwd .getpwnam (self .user ).pw_uid } );' if self .sandbox else ''
8686 _exec_code = f"""
8787try:
8888 import os, sys, json, base64, builtins
@@ -92,8 +92,8 @@ def exec_code(self, code_str, keywords, function_name=None):
9292 locals_v={ '{}' }
9393 keywords={ keywords }
9494 globals_v={ '{}' }
95+ { set_run_user }
9596 os.environ.clear()
96- { target_user }
9797 exec({ dedent (code_str )!a} , globals_v, locals_v)
9898 f_name, f = { action_function }
9999 for local in locals_v:
@@ -103,8 +103,8 @@ def exec_code(self, code_str, keywords, function_name=None):
103103except Exception as e:
104104 builtins.print("\\ n{ _id } :"+base64.b64encode(json.dumps({ err } , default=str).encode()).decode(), flush=True)
105105"""
106+ maxkb_logger .debug (f"Sandbox execute code: { _exec_code } " )
106107 with tempfile .NamedTemporaryFile (mode = 'w' , suffix = '.py' , delete = True ) as f :
107- maxkb_logger .debug (f"Sandbox execute code: { _exec_code } " )
108108 f .write (_exec_code )
109109 f .flush ()
110110 subprocess_result = self ._exec (f .name )
0 commit comments