Quelle est l'idée derrière rm de ne pas supprimer le fichier non inscriptible par défaut?

13

Quelle est l'idée derrière rm de ne pas supprimer le fichier non inscriptible par défaut? Chaque fois que vous souhaitez supprimer un fichier qui n'est pas accessible en écriture pour l'utilisateur actuel, mais que vous disposez d'une autorisation d'écriture sur le répertoire, obtenez cet avertissement et vous devez appuyer sur `y 'pour confirmer la suppression:

rm: remove write-protected regular file 

Je me demande pourquoi les fichiers non inscriptibles sont traités de manière si spéciale? Une chose qui me vient à l'esprit est que ces fichiers sont généralement des fichiers de configuration utilisateur qui contiennent des données secrètes utilisateur telles qu'un mot de passe crypté, donc rm avertit avant de les supprimer. Maintenant, quelle est la vraie raison?

user1042840
la source

Réponses:

16

C'est parce que le comportement d'UNIX est un peu contre-intuitif dans ce cas. Beaucoup de gens sont assez surpris lorsqu'ils marquent un fichier en lecture seule et que quelqu'un peut le supprimer. Vous n'avez besoin que des autorisations d'écriture dans le répertoire contenant pour supprimer un fichier. rmvous demande par courtoisie, au cas où vous espériez que la lecture seule le protégerait.

L'utilisation de -f(force) le fera le faire sans vous harceler. Mais utilisez-le soigneusement.

kurtm
la source
soyez prudent lorsque vous tapez "rm -rf *", pensez.
ChuckCottrill
4
Un de mes amis appelle cela "Lire le courrier très rapidement". :)
kurtm
0

Je pense que vous avez raison à ce sujet, car il ne doit pas être écrit. Si vous supprimez le fichier non accessible en écriture, vous écrivez en fait dans ce fichier. Si vous ne voulez pas être invité, vous pouvez toujours créer un alias, le dit rm est en fait rm -f.

Jeight
la source
Je ne pense pas avoir reçu votre réponse correctement. Je me demande pourquoi rm émet un tel avertissement en premier lieu, pourquoi les fichiers en lecture seule sont traités différemment des fichiers inscriptibles. Je sais que lorsque cet avertissement est affiché, je me demande pourquoi.
user1042840
Parce que si vous définissez quelque chose en lecture seule, il n'est pas supposé être modifié. Cela inclut le retrait. Si vous êtes root et dites-lui de supprimer le fichier en lecture seule, il veut confirmer que vous ne faites pas d'erreur. Cela vous fait repenser votre choix.
Jeight
1
@Jeight Ce n'est pas vraiment correct. Vous n'écrivez pas dans le fichier lors de la suppression. Vous écrivez dans le répertoire contenant.
kurtm
@kurtm Vous avez raison. C'était une faute de frappe, mais le raisonnement sous-jacent est le même.
Jeight