| Server IP : 45.130.228.180 / Your IP : 216.73.217.162 Web Server : LiteSpeed System : Linux sg-nme-web1519.main-hosting.eu 5.14.0-611.16.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Dec 22 03:40:39 EST 2025 x86_64 User : u174041621 ( 174041621) PHP Version : 8.2.33 Disable Function : system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail MySQL : OFF | cURL : ON | WGET : ON | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /lib64/python3.9/site-packages/setools/ |
Upload File : |
# Copyright 2014-2015, Tresys Technology, LLC
#
# SPDX-License-Identifier: LGPL-2.1-only
#
import logging
from typing import Iterable
from .mixins import MatchName
from .policyrep import PolicyCapability
from .query import PolicyQuery
class PolCapQuery(MatchName, PolicyQuery):
"""
Query SELinux policy capabilities
Parameter:
policy The policy to query.
Keyword Parameters/Class attributes:
name The name of the policy capability to match.
name_regex If true, regular expression matching will
be used for matching the name.
"""
def __init__(self, policy, **kwargs) -> None:
super(PolCapQuery, self).__init__(policy, **kwargs)
self.log = logging.getLogger(__name__)
def results(self) -> Iterable[PolicyCapability]:
"""Generator which yields all matching policy capabilities."""
self.log.info("Generating policy capability results from {0.policy}".format(self))
self._match_name_debug(self.log)
for cap in self.policy.polcaps():
if not self._match_name(cap):
continue
yield cap