17

Does having an executable permission on a directory mean that the files inside it are executable too even if the files don't explicitly have executable permissions set ?

23

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.

  • That explains a lot actually! Now I understand why some directories appear with a colored background overlay on their name in terminal emulator. – Shady Programmer Dec 19 '16 at 12:24
  • I've added a bit of info about all permissions, thinking of a directory as a folder full of files isn't as useful as thinking of it as a file in itself, which is just a list of files when it comes to permissions. – Arronical Dec 19 '16 at 12:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.