Difference between executable directory vs executable files

Solution 1:

No, the executable permission for directories means that you can enter the directory, making it your present working directory using cd, and see which files it contains.

It's useful to think of a directory just as a file which is a list of file names.

Read bit - If set, you can read this list. If you have a directory named books:

  • You can ls books and you'll get a list of the files it contains (-l won't work however).

  • You can use command-line completion i.e. touch books/bo+Tab to get books/bookfile.

  • You cannot make books your working directory, cd won't work.

Write bit - You can modify this list names on it. You can only do this if the execute bit is also set.

Execute bit - You need this permission if you want to:

  • Have any access to files within the directory.
  • Modify details of the list itself. You can add, rename or delete names on the list, but this also requires write permission on the directory.

Setting the execute bit on a directory does not in any way affect the files themselves, but it does affect your access to them. For instance if you have write and execute access for a directory, you can move, rename and delete files, even if you can't write into the files themselves.