J'ai ce fichier:
$ ls -l store.sh
-rwxr-xr-x 1 root Apache 117 Feb 5 2016 store.sh
$ id
uid=48(Apache) gid=48(Apache) groups=48(Apache)
Je pense que je n'ai pas la permission d'éditer ce fichier mais qu'il était possible de supprimer et de remplacer le fichier. Comment cela peut-il être? Quelqu'un peut-il expliquer ce comportement?
Vous n'avez pas besoin d'autorisations d'écriture sur un fichier pour le supprimer ou le renommer. Vous devez disposer d'autorisations d'écriture sur le répertoire contenant le fichier, car la suppression ou le changement de nom ne sont pas des opérations sur le fichier, mais des opérations sur la liste de fichiers du répertoire. Donc, dans ce cas, le répertoire de ce fichier a probablement un accès en écriture pour l'utilisateur Apache
ou le groupe Apache
.
Supprimer un fichier ne modifie pas le fichier en question, mais modifie le répertoire parent car il supprime le fichier de la liste des répertoires. Cela signifie également que vous disposez des autorisations complètes sur le répertoire parent du fichier.