Какова идея rm не удалять незаписываемый файл по умолчанию?

13

Какова идея rm не удалять незаписываемый файл по умолчанию? Каждый раз, когда вы хотите удалить файл, который недоступен для записи для текущего пользователя, но у вас есть разрешение на запись в каталог, получите это предупреждение, и вам нужно нажать `y ', чтобы подтвердить удаление:

rm: remove write-protected regular file 

Интересно, почему не записываемые файлы обрабатываются таким особым образом? Одна вещь, которая приходит мне в голову, состоит в том, что такие файлы обычно являются пользовательскими конфигурационными файлами, которые содержат секретные данные пользователя, такие как зашифрованный пароль, поэтому rm предупреждает перед их удалением. Теперь, какова реальная причина?

user1042840
источник

Ответы:

16

Это связано с тем, что в этом случае поведение UNIX немного нелогично. Многие люди очень удивляются, когда отмечают файл только для чтения и кто-то может его удалить. Для удаления файла вам нужны только разрешения на запись в содержащий каталог. rmпросит вас вежливости, если вы надеетесь, что это только для чтения, защитит его.

Использование -f(force) заставит это сделать это, не приставая к вам. Но используйте это осторожно.

kurtm
источник
будьте осторожны при вводе "rm -rf *", подумайте.
ChuckCottrill
4
Мой друг называет это «Чтение почты очень быстро». :)
Куртм
0

Я думаю, что вы правы насчет этого, потому что он не предназначен для записи. Если вы удаляете недоступный для записи файл, вы фактически записываете в этот файл. Если вы не хотите, чтобы вас приглашали, вы всегда можете создать псевдоним, который говорит, что rm на самом деле является rm -f.

Jeight
источник
Я не думаю, что я правильно понял ваш ответ. Интересно, почему rm в первую очередь выдает такое предупреждение, почему файлы, доступные только для чтения, обрабатываются иначе, чем файлы для записи. Я знаю, когда показывается это предупреждение, мне интересно, почему.
user1042840
Потому что если вы устанавливаете что-то только для чтения, это не значит, что оно будет изменено. Это включает в себя быть удаленным. Если вы являетесь пользователем root и в любом случае попросите его удалить файл только для чтения, он хочет подтвердить, что вы не ошиблись. Это заставляет вас переосмыслить свой выбор.
Джайт
1
@Jeight Это не совсем правильно. Вы не пишете в файл при удалении. Вы пишете в каталог, содержащий.
Куртм
@kurtm Вы правы. Это была опечатка, но основная причина та же.
Джайт