:py:mod:`dissect.target.plugins.os.unix.linux.environ` ====================================================== .. py:module:: dissect.target.plugins.os.unix.linux.environ Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: dissect.target.plugins.os.unix.linux.environ.EnvironPlugin Attributes ~~~~~~~~~~ .. autoapisummary:: dissect.target.plugins.os.unix.linux.environ.EnvironmentVariableRecord .. py:data:: EnvironmentVariableRecord .. py:class:: EnvironPlugin(target: dissect.target.Target) Bases: :py:obj:`dissect.target.plugin.Plugin` Base class for plugins. Plugins can optionally be namespaced by specifying the ``__namespace__`` class attribute. Namespacing results in your plugin needing to be prefixed with this namespace when being called. For example, if your plugin has specified ``test`` as namespace and a function called ``example``, you must call your plugin with ``test.example``:: A ``Plugin`` class has the following private class attributes: - ``__namespace__`` - ``__record_descriptors__`` With the following three being assigned in :func:`register`: - ``__plugin__`` - ``__functions__`` - ``__exports__`` Additionally, the methods and attributes of :class:`Plugin` receive more private attributes by using decorators. The :func:`export` decorator adds the following private attributes - ``__exported__`` - ``__output__``: Set with the :func:`export` decorator. - ``__record__``: Set with the :func:`export` decorator. The :func:`internal` decorator and :class:`InternalPlugin` set the ``__internal__`` attribute. Finally. :func:`args` decorator sets the ``__args__`` attribute. :param target: The :class:`~dissect.target.target.Target` object to load the plugin for. .. py:method:: check_compatible() -> None Perform a compatibility check with the target. This function should return ``None`` if the plugin is compatible with the current target (``self.target``). For example, check if a certain file exists. Otherwise it should raise an ``UnsupportedPluginError``. :raises UnsupportedPluginError: If the plugin could not be loaded. .. py:method:: environ() -> Iterator[EnvironmentVariableRecord] Return the initial environment for all processes when they were started via execve(2). If the process modified its environment (e.g., by calling functions such as putenv(3) or modifying the environ(7) variable directly), this plugin will not reflect those changes. Yields EnvironmentVariableRecord with the following fields: hostname (string): The target hostname. domain (string): The target domain. ts (datetime): The modification timestamp of the processes' environ file. name (string): The name associated to the pid. pid (varint): The process id (pid) of the process. variable (string): The name of the environment variable. content (string): The contents of the environment variable.