Supposons que vous ayez la permission d'écrire dans un fichier mais pas de le supprimer.
De quels droits parlons-nous exactement ?
Droits de lecture et d'écriture ?
Supposons que vous ayez la permission d'écrire dans un fichier mais pas de le supprimer.
De quels droits parlons-nous exactement ?
Droits de lecture et d'écriture ?
La réponse de Florian n'est pas tout à fait complète sur mon système: j'ai besoin à la fois des permissions d'écriture et d'exécution sur le répertoire pour pouvoir supprimer un fichier à l'intérieur.
Session d'exemple:
Je travaille sur un Debian bien rodé avec le système de fichiers ext4. Je crée un répertoire avec un fichier à l'intérieur, puis je change les permissions du répertoire et du fichier avant de tenter de supprimer le fichier.
Système de fichiers ext4:
testuser@www:~$ df -T .
Système de fichiers Type 1K-blocs Utilisé Disponible Uti% Monté sur
/dev/sda3 ext4 152326340 44429904 100196624 31% /
Créons un répertoire et un fichier à l'intérieur:
testuser@www:~$ mkdir d
testuser@www:~$ ls -ld d
drwxr-xr-x 2 testuser testuser 4096 21 mai 16:19 d
testuser@www:~$ echo kjhkjh > d/f
testuser@www:~$ ls -l d/f
-rw-r--r-- 1 testuser testuser 7 21 mai 16:19 d/f
Attendu: Impossible de modifier le catalogue de fichiers sans la permission d'écriture dessus:
testuser@www:~$ chmod 100 d && ls -ld d
d--x------ 2 testuser testuser 4096 21 mai 16:19 d
testuser@www:~$ rm d/f
rm: impossible de supprimer 'd/f': Permission non accordée
Inattendu: Impossible de modifier le catalogue de fichiers sans la permission d'exécution dessus:
testuser@www:~$ chmod 200 d && ls -ld d
d-w------- 2 testuser testuser 4096 21 mai 16:19 d
testuser@www:~$ rm d/f
rm: impossible de supprimer 'd/f': Permission non accordée
J'ai besoin à la fois des permissions d'écriture et d'exécution dessus:
testuser@www:~$ chmod 300 d && ls -ld d
d-wx------ 2 testuser testuser 4096 21 mai 16:19 d
testuser@www:~$ rm d/f
En passant: Lorsque le fichier (mais pas le répertoire) est protégé en écriture, rm
demande la permission avant de le supprimer. Après tout, supprimer un fichier peut être considéré comme une forme extrême d'écriture. Il n'y a pas de différence dans les données perdues entre echo -n "" > d/f
et rm d/f
dans le cas courant où il n'y a pas d'autre lien dur vers le fichier.
testuser@www:~$ !echo
echo kjhkjh > d/f
testuser@www:~$ chmod 700 d && ls -ld d
drwx------ 2 testuser testuser 4096 21 mai 16:21 d
testuser@www:~$ chmod 000 d/f && ls -l d/f
---------- 1 testuser testuser 7 21 mai 16:21 d/f
testuser@www:~$ rm d/f
rm: supprimer le fichier régulier protégé en écriture 'd/f'? o
testuser@www:~$ ls -l d
total 0
testuser@www:~$
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.