python/def decode_permissions(permissions):.py

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