Qual è l'idea alla base di rm che non rimuove file non scrivibili per impostazione predefinita?


13

Qual è l'idea alla base di rm che non rimuove file non scrivibili per impostazione predefinita? Ogni volta che si desidera rimuovere un file che non è un file scrivibile per l'utente corrente, ma si dispone di un'autorizzazione di scrittura sulla directory, si ottiene questo avviso e si deve premere "y" per confermare l'eliminazione:

rm: remove write-protected regular file 

Mi chiedo perché i file non scrivibili vengano trattati in modo così speciale? Una cosa che mi viene in mente è che tali file sono in genere file di configurazione dell'utente che contengono dati segreti dell'utente come password crittografata, quindi rm avvisa prima di eliminarli. Ora, qual è la vera ragione?

Risposte:


16

È perché il comportamento di UNIX è un po 'contro-intuitivo in questo caso. Molte persone sono piuttosto sorprese quando contrassegnano un file di sola lettura e qualcuno è in grado di eliminarlo. Per eliminare un file sono necessarie solo le autorizzazioni di scrittura per la directory contenente. rmti sta chiedendo per cortesia, nel caso in cui tu sperassi che la sola lettura lo proteggesse.

L'uso di -f(force) lo farà senza infastidirti. Ma usalo attentamente.


fai attenzione quando scrivi "rm -rf *", pensa.
ChuckCottrill,

4
Un mio amico si riferisce a questo come "Leggi la posta molto velocemente". :)
kurtm,

0

Penso che tu abbia ragione su questo suggerimento perché è impostato per non essere scritto. Se stai rimuovendo il file non scrivibile, in realtà stai scrivendo su quel file. Se non vuoi essere richiesto, puoi sempre creare un alias che dice che rm è effettivamente rm -f.


Non credo di aver ricevuto la tua risposta correttamente. Mi chiedo perché rm emetta questo avviso in primo luogo, perché vengono letti solo i file trattati in modo diverso dai file scrivibili. So quando viene visualizzato questo avviso, mi chiedo perché.
user1042840

Perché se si imposta qualcosa da leggere, non si suppone che debba essere modificato. Ciò include la rimozione. Se sei root e gli dici di rimuovere comunque il file di sola lettura, vuole confermare che non stai commettendo un errore. Ti fa ripensare la tua scelta.
Jeight

1
@Jeight In realtà non è corretto. Siete Non scrivendo al file durante l'eliminazione. Stai scrivendo nella directory contenente.
Kurtm,

@kurtm Hai ragione. Era un refuso, ma il ragionamento sottostante è lo stesso.
Jeight,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.