Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
Apache/2.4.52 (Ubuntu)
Server IP : 192.168.1.1 & Your IP : 3.135.237.153
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
lib /
python3 /
dist-packages /
cloudinit /
config /
Delete
Unzip
Name
Size
Permission
Date
Action
__pycache__
[ DIR ]
drwxr-xr-x
2024-09-18 19:49
schemas
[ DIR ]
drwxr-xr-x
2024-09-18 19:49
__init__.py
40
B
-rw-r--r--
2024-07-03 01:59
cc_ansible.py
7.66
KB
-rw-r--r--
2024-07-03 01:59
cc_apk_configure.py
4.25
KB
-rw-r--r--
2024-07-03 01:59
cc_apt_configure.py
38.07
KB
-rw-r--r--
2024-07-03 01:59
cc_apt_pipelining.py
1.86
KB
-rw-r--r--
2024-07-03 01:59
cc_bootcmd.py
1.67
KB
-rw-r--r--
2024-07-03 01:59
cc_byobu.py
2.66
KB
-rw-r--r--
2024-07-03 01:59
cc_ca_certs.py
8.35
KB
-rw-r--r--
2024-07-03 01:59
cc_chef.py
12.2
KB
-rw-r--r--
2024-07-03 01:59
cc_disable_ec2_metadata.py
1.62
KB
-rw-r--r--
2024-07-03 01:59
cc_disk_setup.py
29.99
KB
-rw-r--r--
2024-07-03 01:59
cc_fan.py
1.97
KB
-rw-r--r--
2024-07-03 01:59
cc_final_message.py
2.49
KB
-rw-r--r--
2024-07-03 01:59
cc_growpart.py
18.39
KB
-rw-r--r--
2024-07-03 01:59
cc_grub_dpkg.py
5.44
KB
-rw-r--r--
2024-07-03 01:59
cc_install_hotplug.py
3.21
KB
-rw-r--r--
2024-07-03 01:59
cc_keyboard.py
1.51
KB
-rw-r--r--
2024-07-03 01:59
cc_keys_to_console.py
2.04
KB
-rw-r--r--
2024-07-03 01:59
cc_landscape.py
3.12
KB
-rw-r--r--
2024-07-03 01:59
cc_locale.py
1.21
KB
-rw-r--r--
2024-07-03 01:59
cc_lxd.py
13.49
KB
-rw-r--r--
2024-07-11 21:27
cc_mcollective.py
4.12
KB
-rw-r--r--
2024-07-03 01:59
cc_mounts.py
16.35
KB
-rw-r--r--
2024-07-03 01:59
cc_ntp.py
18.74
KB
-rw-r--r--
2024-07-03 01:59
cc_package_update_upgrade_install.py
3.8
KB
-rw-r--r--
2024-07-03 01:59
cc_phone_home.py
3.75
KB
-rw-r--r--
2024-07-03 01:59
cc_power_state_change.py
5.94
KB
-rw-r--r--
2024-07-03 01:59
cc_puppet.py
10.73
KB
-rw-r--r--
2024-07-03 01:59
cc_reset_rmc.py
4.47
KB
-rw-r--r--
2024-07-03 01:59
cc_resizefs.py
10.82
KB
-rw-r--r--
2024-07-03 01:59
cc_resolv_conf.py
3.15
KB
-rw-r--r--
2024-07-03 01:59
cc_rh_subscription.py
15.23
KB
-rw-r--r--
2024-07-03 01:59
cc_rsyslog.py
12.7
KB
-rw-r--r--
2024-07-03 01:59
cc_runcmd.py
1.62
KB
-rw-r--r--
2024-07-03 01:59
cc_salt_minion.py
3.97
KB
-rw-r--r--
2024-07-03 01:59
cc_scripts_per_boot.py
1.28
KB
-rw-r--r--
2024-07-03 01:59
cc_scripts_per_instance.py
1.28
KB
-rw-r--r--
2024-07-03 01:59
cc_scripts_per_once.py
1.26
KB
-rw-r--r--
2024-07-03 01:59
cc_scripts_user.py
1.27
KB
-rw-r--r--
2024-07-03 01:59
cc_scripts_vendor.py
1.28
KB
-rw-r--r--
2024-07-03 01:59
cc_seed_random.py
3.01
KB
-rw-r--r--
2024-07-03 01:59
cc_set_hostname.py
3.42
KB
-rw-r--r--
2024-07-03 01:59
cc_set_passwords.py
8.68
KB
-rw-r--r--
2024-07-03 01:59
cc_snap.py
3.34
KB
-rw-r--r--
2024-07-11 21:27
cc_spacewalk.py
2.65
KB
-rw-r--r--
2024-07-03 01:59
cc_ssh.py
11
KB
-rw-r--r--
2024-07-03 01:59
cc_ssh_authkey_fingerprints.py
3.73
KB
-rw-r--r--
2024-07-03 01:59
cc_ssh_import_id.py
5.45
KB
-rw-r--r--
2024-07-03 01:59
cc_timezone.py
1.21
KB
-rw-r--r--
2024-07-03 01:59
cc_ubuntu_autoinstall.py
4.5
KB
-rw-r--r--
2024-07-11 21:27
cc_ubuntu_drivers.py
4.09
KB
-rw-r--r--
2024-07-03 01:59
cc_ubuntu_pro.py
13.74
KB
-rw-r--r--
2024-07-03 01:59
cc_update_etc_hosts.py
2.46
KB
-rw-r--r--
2024-07-03 01:59
cc_update_hostname.py
2.19
KB
-rw-r--r--
2024-07-03 01:59
cc_users_groups.py
2.88
KB
-rw-r--r--
2024-07-03 01:59
cc_wireguard.py
6.68
KB
-rw-r--r--
2024-07-03 01:59
cc_write_files.py
3.99
KB
-rw-r--r--
2024-07-03 01:59
cc_write_files_deferred.py
1.23
KB
-rw-r--r--
2024-07-03 01:59
cc_yum_add_repo.py
4.91
KB
-rw-r--r--
2024-07-03 01:59
cc_zypper_add_repo.py
4.95
KB
-rw-r--r--
2024-07-03 01:59
modules.py
12.96
KB
-rw-r--r--
2024-07-03 01:59
schema.py
66.38
KB
-rw-r--r--
2024-07-03 01:59
Save
Rename
# Copyright (C) 2012 Yahoo! Inc. # # Author: Joshua Harlow <harlowja@yahoo-inc.com> # # This file is part of cloud-init. See LICENSE file for license information. """Write Files: write arbitrary files""" import base64 import logging import os from cloudinit import util from cloudinit.cloud import Cloud from cloudinit.config import Config from cloudinit.config.schema import MetaSchema from cloudinit.settings import PER_INSTANCE DEFAULT_PERMS = 0o644 DEFAULT_DEFER = False TEXT_PLAIN_ENC = "text/plain" LOG = logging.getLogger(__name__) meta: MetaSchema = { "id": "cc_write_files", "distros": ["all"], "frequency": PER_INSTANCE, "activate_by_schema_keys": ["write_files"], } # type: ignore def handle(name: str, cfg: Config, cloud: Cloud, args: list) -> None: file_list = cfg.get("write_files", []) filtered_files = [ f for f in file_list if not util.get_cfg_option_bool(f, "defer", DEFAULT_DEFER) ] if not filtered_files: LOG.debug( "Skipping module named %s," " no/empty 'write_files' key in configuration", name, ) return write_files(name, filtered_files, cloud.distro.default_owner) def canonicalize_extraction(encoding_type): if not encoding_type: encoding_type = "" encoding_type = encoding_type.lower().strip() if encoding_type in ["gz", "gzip"]: return ["application/x-gzip"] if encoding_type in ["gz+base64", "gzip+base64", "gz+b64", "gzip+b64"]: return ["application/base64", "application/x-gzip"] # Yaml already encodes binary data as base64 if it is given to the # yaml file as binary, so those will be automatically decoded for you. # But the above b64 is just for people that are more 'comfortable' # specifying it manually (which might be a possibility) if encoding_type in ["b64", "base64"]: return ["application/base64"] if encoding_type == TEXT_PLAIN_ENC: return [TEXT_PLAIN_ENC] if encoding_type: LOG.warning( "Unknown encoding type %s, assuming %s", encoding_type, TEXT_PLAIN_ENC, ) return [TEXT_PLAIN_ENC] def write_files(name, files, owner: str): if not files: return for (i, f_info) in enumerate(files): path = f_info.get("path") if not path: LOG.warning( "No path provided to write for entry %s in module %s", i + 1, name, ) continue path = os.path.abspath(path) extractions = canonicalize_extraction(f_info.get("encoding")) contents = extract_contents(f_info.get("content", ""), extractions) (u, g) = util.extract_usergroup(f_info.get("owner", owner)) perms = decode_perms(f_info.get("permissions"), DEFAULT_PERMS) omode = "ab" if util.get_cfg_option_bool(f_info, "append") else "wb" util.write_file( path, contents, omode=omode, mode=perms, user=u, group=g ) util.chownbyname(path, u, g) def decode_perms(perm, default): if perm is None: return default try: if isinstance(perm, (int, float)): # Just 'downcast' it (if a float) return int(perm) else: # Force to string and try octal conversion return int(str(perm), 8) except (TypeError, ValueError): reps = [] for r in (perm, default): try: reps.append("%o" % r) except TypeError: reps.append("%r" % r) LOG.warning("Undecodable permissions %s, returning default %s", *reps) return default def extract_contents(contents, extraction_types): result = contents for t in extraction_types: if t == "application/x-gzip": result = util.decomp_gzip(result, quiet=False, decode=False) elif t == "application/base64": result = base64.b64decode(result) elif t == TEXT_PLAIN_ENC: pass return result