File manager - Edit - /usr/share/cagefs-plugins/mysql_lib.py
Back
#!/opt/cloudlinux/venv/bin/python3 -sbb # -*- coding: utf-8 -*- # Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2019 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # http://cloudlinux.com/docs/LICENSE.TXT from __future__ import absolute_import from __future__ import division from __future__ import print_function from __future__ import unicode_literals import os import subprocess from future import standard_library standard_library.install_aliases() from builtins import * # Trusted absolute locations of the mysql client, in priority order. We # probe these explicitly instead of inheriting PATH from the parent # process: this code runs as root from RPM scriptlets and from the root # cron, and trusting an inherited PATH would let a writable directory # anywhere ahead of /usr/bin shadow the real mysql with a planted # binary. /usr/local/bin/mysql is Plesk's default for some MariaDB # packages and is kept here so those deployments keep working. _MYSQL_CANDIDATES = ( '/usr/bin/mysql', '/usr/local/bin/mysql', ) def _resolve_mysql_binary(): for path in _MYSQL_CANDIDATES: if os.path.isfile(path) and os.access(path, os.X_OK): return path return None def _execute(query): with open('/etc/psa/.psa.shadow', 'r') as f: password = f.readline().rstrip() query = query.replace("\n", " ").strip() mysql_bin = _resolve_mysql_binary() if mysql_bin is None: raise RuntimeError( "mysql client not found at any of: %s" % ", ".join(_MYSQL_CANDIDATES) ) # Custom env without PATH: Popen will execve the absolute path # directly without a PATH search, so the child cannot be hijacked # via the parent's PATH. proc_env = {'MYSQL_PWD': password} proc = subprocess.Popen( [mysql_bin, '--no-beep', '--skip-column-names', '--user=admin', '--execute', query + ';'], stdout=subprocess.PIPE, text=True, bufsize=-1, env=proc_env, ) return proc.communicate()[0] def install_cagefs_module_plesk(): result = _execute("select * from psa.Modules where name='plesk-cagefs'") if result == "": _execute(""" insert into psa.Modules(name, packname, display_name, description, icon) values( 'plesk-cagefs', 'plesk-cagefs', 'CageFS', 'GageFS', '/images/modules/plesk-cagefs/addon_CloudLinux_logo2.png' ) """) def delete_cagefs_module_plesk(): _execute("delete from psa.Modules where name='plesk-cagefs'")
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings