CasperSecurity

Current Path : /lib/python3/dist-packages/cloudinit/distros/
Upload File :
Current File : //lib/python3/dist-packages/cloudinit/distros/openbsd.py

# Copyright (C) 2019-2020 Gonéri Le Bouder
#
# This file is part of cloud-init. See LICENSE file for license information.

import logging

import cloudinit.distros.netbsd
from cloudinit import subp, util

LOG = logging.getLogger(__name__)


class Distro(cloudinit.distros.netbsd.NetBSD):
    hostname_conf_fn = "/etc/myname"
    init_cmd = ["rcctl"]

    # For OpenBSD (from https://man.openbsd.org/passwd.5) a password field
    # of "" indicates no password, and password field values of either
    # "*" or "*************" (13 "*") indicate differing forms of "locked"
    # but with no password defined.
    shadow_empty_locked_passwd_patterns = [
        r"^{username}::",
        r"^{username}:\*:",
        r"^{username}:\*\*\*\*\*\*\*\*\*\*\*\*\*:",
    ]

    def _read_hostname(self, filename, default=None):
        return util.load_text_file(self.hostname_conf_fn)

    def _write_hostname(self, hostname, filename):
        content = hostname + "\n"
        util.write_file(self.hostname_conf_fn, content)

    def _get_add_member_to_group_cmd(self, member_name, group_name):
        return ["usermod", "-G", group_name, member_name]

    @classmethod
    def manage_service(cls, action: str, service: str, *extra_args, rcs=None):
        """
        Perform the requested action on a service. This handles OpenBSD's
        'rcctl'.
        May raise ProcessExecutionError
        """
        init_cmd = cls.init_cmd
        cmds = {
            "stop": ["stop", service],
            "start": ["start", service],
            "enable": ["enable", service],
            "disable": ["disable", service],
            "restart": ["restart", service],
            "reload": ["restart", service],
            "try-reload": ["restart", service],
            "status": ["check", service],
        }
        cmd = list(init_cmd) + list(cmds[action])
        return subp.subp(cmd, capture=True, rcs=rcs)

    def lock_passwd(self, name):
        try:
            subp.subp(["usermod", "-p", "*", name])
        except Exception:
            util.logexc(LOG, "Failed to lock user %s", name)
            raise

    def unlock_passwd(self, name):
        LOG.debug(
            "OpenBSD password lock is not reversible, "
            "ignoring unlock for user %s",
            name,
        )

    def _get_pkg_cmd_environ(self):
        """Return env vars used in OpenBSD package_command operations"""
        return {}
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY