De la poste Pourquoi rm peut-il supprimer des fichiers en lecture seule? Je comprends que vous avez rm
simplement besoin d’une permission d’écriture sur le répertoire pour supprimer le fichier. Mais je trouve difficile de digérer le comportement où nous pouvons facilement supprimer un fichier qui propriétaire et groupe différent.
J'ai essayé le suivant
mtk: mon nom d'utilisateur
abc: a créé un nouvel utilisateur
$ ls -l file
-rw-rw-r-- 1 mtk mtk 0 Aug 31 15:40 file
$ sudo chown abc file
$ sudo chgrp abc file
$ ls -l file
-rw-rw-r-- 1 abc abc 0 Aug 31 15:40 file
$ rm file
$ ls -l file
<deleted>
Je pensais que cela n'aurait pas dû être autorisé. Un utilisateur devrait-il pouvoir supprimer uniquement les fichiers en sa possession? Quelqu'un peut-il expliquer pourquoi cela est autorisé? et quel est le moyen d'éviter cela? Je ne peux que penser à limiter l’autorisation en écriture du répertoire parent pour interdire les suppressions de fichier surprises.
-rw-rw-rw- 1 root root 0 Sep 1 11:11 /tmp/foo
tant qu'utilisateur régulier (/tmp
collant) parce que je suis autorisé à l'écrire? Pourtant je ne peux pas.me
/you
devient plus clair si vous supposez que l'utilisateur (celui qui n'est pas propriétaire du fichier) a créé le lien. Les pronoms sont difficiles à utiliser. Disons qu'Al crée/home/al/file1
et que Bob, qui a un accès en lecture (et peut-être en lecture)/home/al
, relie le fichier en dur/home/bob/als_file
. Faut-il empêcher Bob de supprimer un lien qu'il a créé? Et Al devrait-il être autorisé à supprimer (dissocier)/home/bob/als_file
lorsqu'il n'a pas accès en écriture à/home/bob
? Cette route mène au chaos.Pour supprimer un fichier, il vous suffit de pouvoir écrire dans le répertoire dans lequel se trouve le fichier.
Si vous n'aimez pas cela, vous pouvez définir le paramètre "Post-it" via
chmod +t dir
si vous utilisez un système d'exploitation à mi-parcours récent (cette fonctionnalité a été introduite vers 1986 dans SunOS).Si vous voulez être plus précis, vous avez besoin d’un système de fichiers avec une implémentation ACL moderne telle que ZFS. Les listes de contrôle d'accès NFSv4 standard basées sur NTFS incluent la prise en charge des autorisations de suppression spécifiques aux fichiers par utilisateur et une autorisation "delete_child" pour les répertoires.
la source
t
bit, vous devez posséder le répertoire. Et si vous possédez le répertoire, vous pouvez toujours supprimer des fichiers, que let
bit soit défini ou non. Si vous liez un fichier à un répertoire de quelqu'un d'autre, vous devez être prêt à ce que quelqu'un d'autre puisse le supprimer. Une alternative serait de créer d’abord un sous-répertoire et d’y ajouter votre fichier, le propriétaire ne pouvant pas supprimer ce sous-répertoire s’il n’est pas vide.rm
constitue une opération sur le répertoire et non sur le fichier. Un fichier est supprimé lorsque la dernière référence est supprimée, mais techniquement, il s'agit d'un effet secondaire.La logique est semblable à celle d'une maison: le propriétaire ou le locataire décide quels invités jeter, peu importe à qui appartiennent les invités. En outre, l'invité expulsé qui est le bienvenu dans une autre maison (a un autre lien fixe dans le répertoire de quelqu'un d'autre) ne gèlera pas à l'extérieur.
la source