Jaki jest pomysł rm, aby domyślnie nie usuwać plików, których nie można zapisać?

13

Jaki jest pomysł rm, aby domyślnie nie usuwać plików, których nie można zapisać? Za każdym razem, gdy chcesz usunąć plik, którego nie można zapisać dla bieżącego użytkownika, ale masz uprawnienia do zapisu w katalogu, otrzymaj to ostrzeżenie i musisz nacisnąć `y ', aby potwierdzić usunięcie:

rm: remove write-protected regular file 

Zastanawiam się, dlaczego pliki, których nie można zapisać, są traktowane w taki szczególny sposób? Jedną rzeczą, która przychodzi mi na myśl, jest to, że takie pliki są zwykle plikami konfiguracyjnymi użytkownika, które zawierają tajne dane użytkownika, takie jak zaszyfrowane hasło, więc rm ostrzega przed ich usunięciem. Jaki jest prawdziwy powód?

użytkownik1042840
źródło

Odpowiedzi:

16

Jest tak, ponieważ zachowanie UNIX jest w tym przypadku nieco sprzeczne z intuicją. Wielu ludzi jest dość zaskoczonych, gdy zaznaczają plik jako tylko do odczytu i ktoś może go usunąć. Aby usunąć plik, potrzebujesz tylko uprawnień do zapisu do zawierającego go katalogu. rmprosi cię o uprzejmość, na wypadek gdybyś miał nadzieję, że tylko do odczytu to ochroni.

Użycie -f(siły) sprawi, że zrobi to bez zarazy. Ale używaj tego ostrożnie.

kurtm
źródło
bądź ostrożny, pisząc „rm -rf *”, pomyśl.
ChuckCottrill 10.10.2013
4
Mój przyjaciel nazywa to „Czytaj pocztę naprawdę szybko”. :)
kurtm 10.10.2013
0

Myślę, że masz rację, jeśli chodzi o podpowiedzi, ponieważ nie można tego napisać. Jeśli usuwasz plik, którego nie można zapisać, w rzeczywistości piszesz do tego pliku. Jeśli nie chcesz otrzymywać monitu, zawsze możesz utworzyć alias, który mówi, że rm to tak naprawdę rm -f.

Jeight
źródło
Nie sądzę, że poprawnie otrzymałem odpowiedź. Zastanawiam się, dlaczego rm wysyła takie ostrzeżenie w pierwszej kolejności, dlaczego pliki tylko do odczytu są traktowane inaczej niż pliki do zapisu. Wiem, kiedy pojawia się to ostrzeżenie, zastanawiam się, dlaczego.
user1042840,
Ponieważ jeśli ustawisz coś tylko do odczytu, nie należy tego zmieniać. Obejmuje to usunięcie. Jeśli jesteś rootem i każesz mu usunąć plik tylko do odczytu, to chcesz potwierdzić, że nie popełniasz błędu. Powoduje to przemyślenie swojego wyboru.
Jeight,
1
@Jeight To nie jest właściwie poprawne. Podczas pisania nie zapisujesz do pliku. Piszesz do zawierającego katalog.
kurtm
@kurtm Masz rację. To była literówka, ale podstawowe rozumowanie jest takie samo.
Jeight