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 and
unlink 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.