Почему sed -i заменяет символические ссылки на файл? [дубликат]

Оба файла происходят из libc-bin

$ dpkg -S /sbin/ldconfig{,.real}
libc-bin: /sbin/ldconfig
libc-bin: /sbin/ldconfig.real

, поэтому вы можете переустановить с помощью:

sudo apt install --reinstall libc-bin

Но если что-то настолько фундаментальное, как libc, действительно заражено , вы не сможете удалить его из действующей системы. Он может банально исправить все, что связано с ним, чтобы просто повторно заразить ваш компьютер. Вы могли бы, вероятно, смонтировать его с помощью chroot с LiveCD и переустановить все ... Или просто переустановить с нуля и скопировать свои (проверенные и очищенные) данные.

Но действительно ли вы заражены? Я не знаю, почему ты так думаешь. Недавно были выпущены патчи libc (обычно это довольно частые IME), поэтому я не уверен, что вы видите что-то, кроме стандартных вещей.


Я действительно думаю, что вы без надобности переключаете то, что, скорее всего, будет плохим обновлением, случайной ошибкой, службой, которая перезагружается на новую версию libc и т. Д., В аварийный сценарий. Особенно, когда мы говорим о «некоторых предупреждениях», не зная, в чем они заключались. Предупреждения появляются постоянно.

У вас есть только несколько вариантов:

  • Проверять файлы из безопасной среды (например, Live CD / USB).Если ваша версия претендует на ту же версию, что и оригиналы , но их md5sum (или sha256sum , каким бы параноиком вы не хотели быть) отличаются, то у вас проблема.
  • Предположите катастрофу и переустановите.
  • Примите синюю таблетку, история заканчивается, вы просыпаетесь в своей постели и верите во все, во что хотите. Невежество - это блаженство, верно?

5
09.03.2018, 16:09
2 ответа

Это ожидаемое поведение.

Флаг -i/ --in-placeредактирует временную копию файла, а затем перемещает эту копию поверх оригинала.

Итак, когда вы:

sed -i 'bla' symlink

Что делает sed:

sed 'bla' symlink > temp_file
mv temp_file symlink

И, следовательно, уничтожение символической ссылки путем размещения на ее месте обычного файла.

Информация взята из комментария в . Как предотвратить уничтожение символических ссылок sed -i?

10
27.01.2020, 20:34

Есть ли в полном списке что-то подобное

lrw-rw-r--. 1 arogge arogge 5 Mar 9 15:07 bar-e -> foo

Это предполагаемое поведение. Из справочной страницы для sed

-i extension

Edit files in-place, saving backups with the specified extension.

Похоже, что sed интерпретирует -e как расширение -i.

0
27.01.2020, 20:34

Теги

Похожие вопросы