Skip to content

galactixx/unix-perms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

27 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages