3 votes

Pourquoi ne puis-je pas accéder à mon propre dossier avec l'autorisation 644 ?

Je ne peux pas accéder à un dossier WordPress qui a été créé avec mon utilisateur et avec la permission 644. Est-ce correct? Lorsque j'essaie d'accéder au dossier, j'obtiens ce résultat:

mdm-suporte@localhost:~$ cd public_html/
-bash: cd: public_html/: Permission denied

Aussi, Apache renvoie une erreur 403. Seulement avec la permission 755 je peux accéder au dossier et Apache fonctionne.

Quelque chose ne va pas?

5voto

SHawarden Points 534

Les dossiers doivent être exécutables pour y accéder. Observer:

Avec des permissions 644 sur le répertoire:

[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 denied

Avec des permissions 755 sur le même répertoire:

[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]

2voto

xenoid Points 9208

Le drapeau "exécuter" sur le répertoire donne accès aux objets du système de fichiers sous le répertoire. Le drapeau "lire" donne accès au contenu du répertoire. Donc en commençant par :

test
 file1
 file2

Si vous supprimez le drapeau d'exécution, vous pouvez toujours lister le contenu :

>chmod -x test
> echo test/*
test/file1 test/file2

Mais vous ne pouvez pas accéder au contenu :

>cat test/file1
cat: test/file1: Permission denied

Vous ne pouvez même pas obtenir d'informations sur ces fichiers car cela se fait en accédant à leur inode, ce que le manque de privilèges d'exécution vous empêche de faire :

stat test/file1
stat: cannot stat 'test/file1': Permission denied

Maintenant, si vous gardez le privilège d'exécution, mais supprimez le privilège de lecture, la situation est inversée :

>chmod +x-r test

Vous ne pouvez pas lister le contenu du répertoire :

>ls test
ls: cannot open directory 'test': Permission denied

Mais si vous savez ce qu'il contient, vous pouvez accéder aux inodes correspondants :

>stat test/file1
  Fichier : 'test/file1'
  Taille : 6               Blocs : 8          Bloc d'E/S : 4096   fichier régulier
Périphérique : fd01h/64769d    Inode : 24642501    Liens : 1
Accès : (0644/-rw-r--r--)  Uid : ( 1000/      me)   Gid : ( 1000/      me)
Accès : 2019-06-01 09:07:30.300676842 +0200
Modifié : 2019-06-01 08:53:14.811834525 +0200
Changé : 2019-06-01 08:53:14.811834525 +0200

Et ainsi accéder au contenu :

>cat test/file1
File1

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X