An unfortunate mixup
occurs with the standard UN*X terminology
for file permissions
with regard to directories
. Whereas "read
" and "write
" are fairly straightforward (you need read permission to list the directory, and write permission to link
in it, i.e. to create, rename and delete files), "execute
" is confusing.
What the execute bit does is allow you to traverse that directory in a path search. Say I want to "cat /usr/foo/bar/baz". Obviously I need read permission on /usr/foo/bar/baz. But I also need execute permission on /usr/, /usr/foo/, and /usr/foo/bar/! This is still much less than read permission, which would allow me to know the directory /usr/foo/nekkid-pikcherz/ also exists.