[NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid
Модератор: Модераторы разделов
-
Dmitry Shurupov
- Сообщения: 336
- Статус: Open Source geek
- ОС: Ubuntu Linux
[NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid
В скрипте инициализации кэширующего прокси-сервера Squid, имеющемся в составе тестового релиза Red Hat Enterprise Linux (RHEL) 6.7, обнаружен баг, приводящий к выполнению знаменитой команды «rm -rf /*» (и, соответственно, удалению всех файлов в системе) при перезапуске squid.
Судя по всему, проблема возникает из-за наличия в скрипте инициализации squid.init команды «rm -rf $SQUID_PIDFILE_DIR/*», используемой в блоках stop и restart (причем в блоке restart удаление выполняется сразу после выполнения команд из блока stop). Если путь, указанный в переменной SQUID_PIDFILE_DIR, не определен, то запускается процесс очистки всей файловой системы. Более подробная информация о причинах подобного поведения скрипта пока не обнародована.
Проблема существует только в тестовой ветке RHEL 6.7 с пакетом squid-3.1.23-4.el6, и воспроизводится на виртуальной машине последовательностью команд «service squid start» + «service squid restart». В версии squid 3.1.23-5.el6 она уже отмечена как решенная. Следует также отметить, что аналогичная проблема (выполнение команды «rm -rf /*», если переменная пути, используемая в качестве аргумента, не заполнена) недавно была найдена в Steam под Linux.
оригинал на www.nixp.ru
оригинал на www.nixp.ru
По-моему, это еще один повод перейти на Убунту.
-
Stauffenberg
- Сообщения: 2041
- Статус: ☮ PEACE ☮
- ОС: открытая и свободная
Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid
Было бы интересно узнать поподробней об авторе кода.
Labor omnia vincit
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
-
Bizdelnick
- Модератор
- Сообщения: 21545
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid
Судя по тому, что в Федоре такого ужаса не наблюдается, автор — из штата RH.
Меня, впрочем, больше интересует, зачем в принципе могло понабиться удалять pid-файлы пачками, и откуда они в таком количестве могли взяться.
P. S. С нетерпением ждём, кто же первым расскажет, что во всём виноват sysvinit upstart, и что с systemd такого бы не было.
Меня, впрочем, больше интересует, зачем в принципе могло понабиться удалять pid-файлы пачками, и откуда они в таком количестве могли взяться.
P. S. С нетерпением ждём, кто же первым расскажет, что во всём виноват sysvinit upstart, и что с systemd такого бы не было.
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
Vascom
- Сообщения: 1699
- ОС: Fedora 32
Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid
Bizdelnick, вот ты первый и сказал. И оказался прав.
-
Bizdelnick
- Модератор
- Сообщения: 21545
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid
Ничего подобного. Это высказывание неверно как минимум по двум причинам.
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
Kopilov
- Сообщения: 958
- ОС: [K]Ubuntu, Debian
Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid
Первая -- видимо, потому, что в RHEL нет Upstart. А вторая?
-
Vascom
- Сообщения: 1699
- ОС: Fedora 32
Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid
А вот и нет. В RHEL 6 как раз-таки upstart 
-
Bizdelnick
- Модератор
- Сообщения: 21545
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid
Первая заключается в том, что в systemd тоже хватает мест, откуда можно запустить волшебную команду, ExecStartPre например. И не надо говорить, что её туда не станут вставлять, потому что незачем: в инит-скриптах она тоже не нужна, а вот поди ж ты. Вторая — система инициализации, будь то sysvinit, upstart или systemd, в принципе не может быть виновата в глупой (или, тем более, злонамеренной) ошибке майнтейнера. Виноват только он сам.
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
yoshakar
- Сообщения: 259
- ОС: Debian Stretch
Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid
Пределагаю подумать-таки (подумать в индивидуальном порядке, а не обсуждать - обсуждать смысла не вижу - уже обсуждали) над следующим тезисом: виноват язык shell.
-
yars
- Сообщения: 1147
- Статус: Slacker!
- ОС: Slackware64-current
Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid
Я согласен с Bizdelnick. Всему виной человеческий фактор, и никакой супер-пупер-мега-systemd его исключить не в состоянии. Просто, как и любой другой язык, неважно, скриптовый он, или "настоящий" язык программирования, требует внимательного изучения и применения, самоконтроля. И никакой systemd это не изменит.
Slackware64-current/Xfce/Xiaomi Mi Notebook Pro 15.6 | Arch Linux/Xfce/Lenovo G580
-------------
Registered Linux User #557010
-------------
Registered Linux User #557010
Спасибо сказали:
-
Bizdelnick
- Модератор
- Сообщения: 21545
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid
Ну тогда уж виноват любой язык, позволяющий удалять файлы. Включая C и «язык» сервисов systemd.
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
Vascom
- Сообщения: 1699
- ОС: Fedora 32
Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid
Да ни кто не спорит, что виноват маинтейнер.
Вы сами не можете отстать от системд почему-то.
Вы сами не можете отстать от системд почему-то.
-
Hephaestus
- Сообщения: 3728
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid
Dmitry Shurupov писал(а): ↑24.03.2015 12:41В скрипте инициализации кэширующего прокси-сервера Squid, имеющемся в составе тестового релиза Red Hat Enterprise Linux (RHEL) 6.7, обнаружен баг, приводящий к выполнению знаменитой команды «rm -rf /*» (и, соответственно, удалению всех файлов в системе) при перезапуске squid.
Dmitry Shurupov писал(а): ↑24.03.2015 12:41Следует также отметить, что аналогичная проблема (выполнение команды «rm -rf /*», если переменная пути, используемая в качестве аргумента, не заполнена) недавно была найдена в Steam под Linux.
Я сталкивался с подобным, используя LiveCD Dr.Web. Я где-то здесь уже писал об этом.
Но там было сложнее, удалялись не все файлы, а с определенного раздела. С какого именно - сказать сложно, заметил только что как-то связано было со свободным местом. Представители Dr.Web говорили, что очень трудноуловимая бага, случается нечасто, поэтому долго не могли исправить. Но меня неприятно удивил тот факт, что в течение нескольких месяцев неоднократно поступали жалобы от пострадавших, и всё это время образ с багом как ни в чём не бывало продолжал висеть на странице загрузок и даже предупреждения никакого не вывесили.
Данный LIveCD, кстати, построен на базе Gentoo.
Поэтому дело тут не в дистре и не в системе инициализации, а в чьих-то кривых руках, халатности и разгильдяйстве.
Спасибо сказали:
-
yoshakar
- Сообщения: 259
- ОС: Debian Stretch
-
MrClon
- Сообщения: 838
- ОС: Ubuntu 10.04, Debian 7 и 6
Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid
Инит скрипты на сях это сурово. Но справедливости ради надо отметить что Си в процитированном утверждении можно заменить на более-менее любой распространённый ЯП.
-
Vascom
- Сообщения: 1699
- ОС: Fedora 32
-
yoshakar
- Сообщения: 259
- ОС: Debian Stretch
Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid
Согласен и с первых и со вторым.
Ну, может и не совсем кретином, но в общем я согласен с этим.
-
Bizdelnick
- Модератор
- Сообщения: 21545
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid
Это обычное явление при программировании методом копипастинга независимо от языка. В шелле чаще встречаются одни ошибки, в других языках — другие, но последствия всегда плачевные.
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
Yaros
- Сообщения: 501
- ОС: Debian Wheezy / Gentoo
Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid
Странно. У меня наверное версия шелла отличается от той, в которой это "обычно"?
Спасибо сказали:
-
yoshakar
- Сообщения: 259
- ОС: Debian Stretch
Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid
Скорее вы используете нетрадиционные способы программирования на этом языке. Какие - не знаю. Я знаю один способ предотвратить указанную проблему: завести в программе функцию "удалить каталог рекурсивно", и в начале этой функции вписать проверку на коректность переданного каталога - существование и непустоту. Но для шелла подобный код чужероден и неорганичен.
-
Yaros
- Сообщения: 501
- ОС: Debian Wheezy / Gentoo
Re: [NIXP] В тестовой ветке RHEL 6.7 найден баг, приводящий к удалению всех файлов в системе при перезапуске squid
yoshakar писал(а): ↑26.03.2015 21:35Скорее вы используете нетрадиционные способы программирования на этом языке. Какие - не знаю. Я знаю один способ предотвратить указанную проблему: завести в программе функцию "удалить каталог рекурсивно", и в начале этой функции вписать проверку на коректность переданного каталога - существование и непустоту. Но для шелла подобный код чужероден и неорганичен.
Скорее, у Вас неправильный подход к шеллу.
Спасибо сказали: