47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
def decode_permissions(permissions):
|
|
if len(permissions) != 10:
|
|
return "Invalid permissions string."
|
|
|
|
file_type = permissions[0]
|
|
owner_permissions = permissions[1:4]
|
|
group_permissions = permissions[4:7]
|
|
others_permissions = permissions[7:10]
|
|
|
|
file_type_dict = {
|
|
'd': "Directory",
|
|
'-': "File"
|
|
}
|
|
|
|
owner_permissions_dict = {
|
|
'r': "Read",
|
|
'w': "Write",
|
|
'x': "Execute",
|
|
'-': "No permission"
|
|
}
|
|
|
|
owner_permissions_str = " ".join(owner_permissions_dict[p] for p in owner_permissions)
|
|
|
|
group_permissions_dict = {
|
|
'r': "Read",
|
|
'w': "Write",
|
|
'x': "Execute",
|
|
's': "Set Group ID (SGID) bit set",
|
|
'-': "No permission"
|
|
}
|
|
|
|
group_permissions_str = " ".join(group_permissions_dict[p] for p in group_permissions)
|
|
|
|
others_permissions_dict = {
|
|
'r': "Read",
|
|
'w': "Write",
|
|
'x': "Execute",
|
|
's': "Set Group ID (SGID) bit set for others",
|
|
'-': "No permission"
|
|
}
|
|
|
|
others_permissions_str = " ".join(others_permissions_dict[p] for p in others_permissions)
|
|
|
|
return f"{file_type_dict[file_type]} - Owner: {owner_permissions_str}, Group: {group_permissions_str}, Others: {others_permissions_str}"
|
|
|
|
file_permissions = "drwxrwsrwx+"
|
|
print(decode_permissions(file_permissions)) # Output: Directory - Owner: Read Write Execute, Group: Read Write Set Group ID (SGID) bit set, Others: Read Write Execute |