I can’t access a WordPress folder that was created with my user and with permission 644. Is it correct? When I try to access the folder I have this result:
mdm-suporte@localhost:~$ cd public_html/
-bash: cd: public_html/: Permission deniedAlso Apache results 403 error. Only with permission 755 I can access the folder and apache works.
Any thing wrong?
12 Answers
Folders must be executable to be accessed. Observe:
With 644 permissions on the directory:
[Mjolnir:~]mkdir test
[Mjolnir:~]chmod 644 test
[Mjolnir:~]ls -l | grep test
drw-r--r-- 2 USER USER 4096 Jun 1 15:03 test/
[Mjolnir:~]ls -l test
ls: cannot access 'test/.': Permission denied
ls: cannot access 'test/..': Permission denied
total 0
d????????? ? ? ? ? ? ./
d????????? ? ? ? ? ? ../
[Mjolnir:~]cd test
-bash: cd: test: Permission deniedWith 755 permissions on the same directory:
[Mjolnir:~]chmod 755 test
[Mjolnir:~]ls -l | grep test
drwxr-xr-x 2 USER USER 4096 Jun 1 15:03 test/
[Mjolnir:~]ls -l test
total 8
drwxr-xr-x 2 USER USER 4096 Jun 1 15:03 ./
drwxr-xr-x 57 USER USER 4096 Jun 1 15:04 ../
[Mjolnir:~]cd test
[Mjolnir:test] The "execute" flag on directory gives accesses to filesystem objects under the directory. The "read" flags gives access to directory contents. So starting with:
test
├── file1
└── file2If you remove the execute flag, you can still list the contents:
>chmod -x test
> echo test/*
test/file1 test/file2but you cannot access the contents:
>cat test/file1
cat: test/file1: Permission deniedYou can't even get information on these files since this is done by accessing their inode, which is what the lack of execution privileges prevents you to do:
stat test/file1
stat: cannot stat 'test/file1': Permission deniedNow, if you keep the execution privilege, but remove the red privilege, the situtation is the opposite:
>chmod +x-r testYou cannot list the directory contents:
>ls test
ls: cannot open directory 'test': Permission deniedBut if you know what it contains, you can access the corresponding inodes:
>stat test/file1 File: 'test/file1' Size: 6 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 24642501 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ me) Gid: ( 1000/ me)
Access: 2019-06-01 09:07:30.300676842 +0200
Modify: 2019-06-01 08:53:14.811834525 +0200
Change: 2019-06-01 08:53:14.811834525 +0200And so access the contents:
>cat test/file1
File1