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
lsbooks and you’ll get a list of the files it contains (
-lwon’t work however).
- You can use command-line completion i.e.
touch books/bo+Tab to get
- You cannot make books your working directory,
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.