-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathpermissions_formatter.py
More file actions
27 lines (24 loc) · 912 Bytes
/
permissions_formatter.py
File metadata and controls
27 lines (24 loc) · 912 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/env python
def formatter(permission_bits):
u,g,a = (permission_bits & 0700) >> 6, (permission_bits & 0070) >> 3, permission_bits & 0007
out = ['-']
perms = {2:'r',1:'w',0:'x'}
for part in [u,g,a]:
for i in xrange(2,-1,-1):
if part & (1 << i): out.append(perms[i])
else: out.append('-')
return ''.join(out)
def formatter_new(permission_bits):
out = ['-']
perms = {2:'r',1:'w',0:'x'}
for j in xrange(2,-1,-1):
for i in xrange(2,-1,-1):
print (permission_bits & (0700>>(2-j))) >> (j*3)
if ((permission_bits & (0700>>(2-j))) >> (j*3)) & (1 << i): out.append(perms[i])
else: out.append('-')
return ''.join(out)
print formatter(0777), '-rwxrwxrwx'
print formatter(0666), '-rw-rw-rw-'
print formatter(0755), '-rwxr-xr-x'
print formatter(0600), '-rw-------'
print formatter(0644), '-rw-r--r--'