Mini Shell
#!/opt/cloudlinux/venv/bin/python3 -bb
# -*- 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 subprocess
from future import standard_library
standard_library.install_aliases()
from builtins import *
def _execute(query):
with open('/etc/psa/.psa.shadow', 'r') as f:
password = f.readline().rstrip()
query = query.replace("\n", " ").strip()
proc = subprocess.Popen(
f'mysql --no-beep --skip-column-names --user=admin --execute="{query};"',
shell=True,
executable='/bin/bash',
stdout=subprocess.PIPE,
text=True,
bufsize=-1,
env={
# NOTE: Despite what is said in MySQL documentation, passing password using an environment variable seems to
# be quite safe for systems of this millennium. More precisely, on modern Linux no one can read /proc/<pid>/environ
# except for euid of root and the process owner.
'MYSQL_PWD': password,
}
)
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'")
Zerion Mini Shell 1.0