Manage and interpret Unix file permissions with a Python package that provides intuitive tools for creating, validating, and describing permission modes.
To install unix-perms, run the following command:
pip install unix-perms- 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.
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
)from unix_perms import from_octal_to_permissions_mode
mode = from_octal_to_permissions_mode(0o777)
print(mode)777from unix_perms import is_permissions_mode
print(is_permissions_mode('755'))
print(is_permissions_mode('999'))True
Falsefrom unix_perms import PermissionsConfig
config = PermissionsConfig.from_octal_digit(4)
print(config)PermissionsConfig(read=True, write=False, execute=False)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 onlyfrom 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
204This project is licensed under the MIT License. See the LICENSE file for more details.
If you have any questions or need support, feel free to reach out by opening an issue on the GitHub repository.