Login and get coding
Each file and directory in Unix has its permissions broken down into owner, group and other (world) attributes, see here.
Each attribute has one or more permissions: r(ead), w(rite), e(x)ecute. The lack of any permission is indicated by a dash (
r--= read only,
rw-= read + write, and
rwx= full permissions.
The file permission for owner + group + other has 3 of those strings after the initial character which indicates file type (- = file / d = directory):$ lt bite.html -rw-r--r-- 1 bobbelderbos staff 229B Oct 9 14:03 bite.html
To change the file permission you use the
chmodand its octal representation, for each attribute (owner, group, other) we translate the permission string summing a value for each permission:
w= 2, and
x= 1, hence:$ touch myfile $ lt myfile -rw-r--r-- 1 bobbelderbos staff 0B Oct 11 10:12 myfile $ chmod 400 myfile $ lt myfile -r-------- 1 bobbelderbos staff 0B Oct 11 10:12 myfile $ chmod 600 myfile $ lt myfile -rw------- 1 bobbelderbos staff 0B Oct 11 10:12 myfile $ chmod 700 myfile $ lt myfile -rwx------ 1 bobbelderbos staff 0B Oct 11 10:12 myfile $ chmod 740 myfile $ lt myfile -rwxr----- 1 bobbelderbos staff 0B Oct 11 10:12 myfile $ chmod 745 myfile $ lt myfile -rwxr--r-x 1 bobbelderbos staff 0B Oct 11 10:12 myfile
That concludes our little Unix file permission lesson. In this Bite you will complete
get_octal_from_file_permissionthat takes a permission string and returns its octal representation, for example:>>> from permissions import get_octal_from_file_permission >>> get_octal_from_file_permission('rw-r--r--') '644' >>> get_octal_from_file_permission('rwxrwxrwx') '777'
Of course the tests check a bunch more (wonder about
parametrize? You can read more about it on our blog - bullet 9). Have fun and keep calm and code in Python!