from https://www.digitalocean.com/community/tutorials/an-introduction-to-linux-permissions
For a normal file, read permission allows a user to view the contents of the file.
For a directory, read permission allows a user to view the names of the file in the directory.
For a normal file, write permission allows a user to modify and delete the file.
For a directory, write permission allows a user to delete the directory, modify its contents (create, delete, and rename files in it), and modify the contents of files that the user can read.
For a normal file, execute permission allows a user to execute a file (the user must also have read permission). As such, execute permissions must be set for executable programs and shell scripts before a user can run them.
For a directory, execute permission allows a user to access, or traverse, into (i.e. cd) and access metadata about files in the directory (the information that is listed in an ls -l).
http://en.wikipedia.org/wiki/File_system_permissions
File - grants the ability to read a file. Directory - grants the ability to read the names of files in the directory, but not to find out any further information about them such as contents, file type, size, ownership, permissions.
File - grants the ability to modify a file. Direcotory - grants the ability to modify entries in the directory. This includes creating files, deleting files, and renaming files.
File - grants the ability to execute a file. This permission must be set for executable programs, including shell scripts, in order to allow the operating system to run them. Directory - grants the ability to access file contents and meta-information if its name is known, but not list files inside the directory, unless read is set also.