When an object is created, it is assigned owner and group IDs from the process IDs. Owner root is allowed to read and write, group root is allowed to read, and everybody else is allowed to read. To execute a binary program, execute permission is needed. Even the superuser must obey this. If you want to execute it by just the name, it must be executable also.
Users can chgrp to any group they belong to.
Directories For directories, the meaning is different. List means you can see what the directory contains, e.g. ls, file completion. Search means you can access to what's there. You cannot see what is inside folder, but if you know the name of a file inside, you can use it. For devices and named pipes, permissions work more or less as for files, except that execute has no meaning.