galactixx / unix-perms

Manage and interpret Unix file permissions with a Python package that provides intuitive tools for creating, validating, and describing permission codes.

Repository from Github https://github.comgalactixx/unix-permsRepository from Github https://github.comgalactixx/unix-perms

unix-perms

Tests PyPI version Python versions License PyPI Downloads PyPI Downloads

Manage and interpret Unix file permissions with a Python package that provides intuitive tools for creating, validating, and describing permission modes.

πŸ“¦ Installation

To install unix-perms, run the following command:

pip install unix-perms

πŸš€ Features

  • Convert octal digits to permission configurations.
  • Convert octal representations to Unix permission modes.
  • Validate Unix permission modes.
  • Create, update, and work with permissions modes using python objects.

πŸ“š Usage

Convert an Octal Digit to Configuration

from unix_perms import from_octal_digit_to_config

config = from_octal_digit_to_config(7)
print(config)
OctalConfig(
    description='Read, write, and execute permissions',
    read=True,
    write=True,
    execute=True
)

Convert Octal Representation to Unix Permissions Mode

from unix_perms import from_octal_to_permissions_mode

mode = from_octal_to_permissions_mode(0o777)
print(mode)
777

Validate if an Octal Representation is a Unix Permissions Mode

from unix_perms import is_permissions_mode

print(is_permissions_mode('755'))
print(is_permissions_mode('999'))
True
False

Using PermissionsConfig

from unix_perms import PermissionsConfig

config = PermissionsConfig.from_octal_digit(4)
print(config)
PermissionsConfig(read=True, write=False, execute=False)

Using PermissionsByte

from unix_perms import PermissionsByte, PermissionsConfig

config = PermissionsConfig(read=True, write=False, execute=False)
owner_permissions = PermissionsByte(authority="owner", config=config)

print(owner_permissions.permissions_mode)
print(owner_permissions.permissions_description)
400
Read permission only

Using PermissionsMode

from unix_perms import PermissionsByte, PermissionsConfig, PermissionsMode

owner_permissions = PermissionsByte(
    authority="owner", config=WRITE_PERMISSIONS_CONFIG
)
group_permissions = PermissionsByte(
    authority="group", config=ALL_PERMISSIONS_CONFIG
)
others_permissions = PermissionsByte(
    authority="others", config=READ_PERMISSIONS_CONFIG
)

permissions_mode = PermissionsMode(
    owner=owner_permissions, group=group_permissions, others=others_permissions
)
print(permissions_mode.permissions_mode)

group_permissions_new = PermissionsByte(
    authority="group", config=ALL_PERMISSIONS_CONFIG
)
permission_mode_sub = permissions_mode - group_permissions_new
print(permission_mode_sub.permissions_mode)
274
204

🀝 License

This project is licensed under the MIT License. See the LICENSE file for more details.

πŸ“ž Contact

If you have any questions or need support, feel free to reach out by opening an issue on the GitHub repository.

About

Manage and interpret Unix file permissions with a Python package that provides intuitive tools for creating, validating, and describing permission codes.

License:MIT License


Languages

Language:Python 100.0%