LINUX.ORG.RU

Обнаружены новые уязвимости в bash

 , shellshock


3

3

Не успело сообщество отойти от уязвимостей ShellShock, как сотрудник Red Hat Флориан Ваймер опубликовал информацию о новых. Уязвимости CVE-2014-7186 и CVE-2014-7187, возникающие из-за некорректной обработки операций с памятью при разборе выражений, перечёркивают все прошлые усилия по закрытию ShellShock и позволяют удалённо выполнять любые команды.

Протестировать наличие проблем CVE-2014-7186 и CVE-2014-7187 можно при помощи выражений:

   bash -c "true $(printf '</dev/null
   if [ $? != 0 ]; then
      echo -e "Vulnerable to CVE-2014-7186"
   fi

   bash -c "`for i in {1..200}; do echo -n "for x$i in; do :;"; done; for i in {1..200}; do echo -n "done;";done`" 2>/dev/null
   if [ $? != 0 ]; then
      echo -e "Vulnerable to CVE-2014-7187"
   fi

Пользователи FreeBSD и NetBSD вне опасности, поскольку тамошние мейнтейнеры решили пожертвовать обратной совместимостью и полностью отключили эту часть функционала bash.

Ещё две уязвимости CVE-2014-6277 и CVE-2014-6278 обнаружил сотрудник Google Михаил Залевский, но отказался публиковать подробности до внесения исправлений в bash. Учитывая, что для разбора кода функций в bash применяется большой универсальный пласт кода, который потенциально может предоставлять множество различных векторов для атак, так как данный код написан без оглядки на обработку данных, поступающих извне, неизвестно сколько ещё уязвимостей нас ожидает впереди.

Кроме того, можно отметить статью разработчиков Perl, в которой описываются пути проявления уязвимости в perl-скриптах, запускаемых в системах, в которых bash используется как /bin/sh и $SHELL. Проблемы могут проявляться в скриптах, в которых используется вызовы system и exec без разделения аргументов или при открытии потока через open с перенаправлением вывода. Проблемы не специфичны для Perl и проявляются в любых других языках, позволяющих выполнять команды с использованием командной оболочки.

Также опубликован дополнительный анализ возможных серверных систем, в которых возможно проведение атаки. Кроме упоминавшихся ранее атак на DHCP-клиенты, CGI-скрипты и ssh-аккаунты для Git/Subversion, в обзоре утверждается о вероятном проявлении проблемы в OpenVPN (при соединении с сервером злоумышленника), Exim, qmail, procmail, Mailfilter, SER, Phusion Passenger, Radius-серверах и службах Inetd (например, tcpserver). Не подвержены проблеме Postfix, stunnel, OpenBSD inetd и xinetd.

Для комплексной проверки систем на подверженность атакам Shellshock подготовлен универсальный скрипт.

>>> Подробности

anonymous

Проверено: Shaman007 ()
Последнее исправление: ymn (всего исправлений: 1)
Ответ на: комментарий от emulek

В отличие от bash, где уязвимость сразу же была закрыта

уязвимость сразу же была закрыта

сразу же

Ага, конечно

anonymous
()
Ответ на: комментарий от anonymous

в слаке закрыта. Проблемы негров шерифа не волнуют.

emulek
()
Ответ на: комментарий от emulek

нет. Зачем, если EXE вирусы тоже отлично работают?

Какое отношение exe-вирусы имеют к cmd.exe? Просто ты говорил о способности cmd.exe исполнять «вирусню», несмотря на убожество. Так вот, exe-вирусам в общем случае cmd.exe сто лет не нужен, сам понимаешь.

К слову, старых добрых вирусов, которые дописывали бы свое тело к исполнимым модулям, уже и нету. Всякие черви и прочая малварь — это не то.

Также вирусы могут сами запускаться, бучи внедрёнными в ~/.bashrc, ~/.bash_login, ~/.xinitrc и кучу всего разного. Заметь, для этого не нужно никаких прав, кроме пользовательских. Даже /home может быть смонтированна как noexec, это не помешает скриптам выполняться (noexec на скрипты не действует).

Здесь возникает классическая проблема курицы и яйца — вирус изначально должен присутствовать на хосте, чтобы внедриться в ~/.bashrc и т. д. Спрашивается, откуда он там возьмется? Даже принимая во внимание обсуждаемую здесь уязвимость в bash.

dexpl ★★★★★
()
Ответ на: комментарий от Napilnik

Как только потребется при отладке пропустить с 10 по 1000 строки,
так надо все 991 комментировать или портить код и делать функцию

так, при изучении вопроса поближе, окажется, что таки функцию и следовало сделать сразу. :-)

AS ★★★★★
()
Ответ на: комментарий от AS

«Это очень сильное колдунство»™ :)
Ещё б понять накойхер оно надо.

argv_0_ ★★
()
Ответ на: комментарий от dexpl

Какое отношение exe-вирусы имеют к cmd.exe?

в отличие от *nix, cmd вирусы никому не нужны, ибо система(must die) абсолютно беззащитна для exe вирусов. Просто в *nix очень проблематично сделать так, что-бы elf закачался-бы и запустился так, что-бы юзер об этом не знал. Однако скрипт запустить несложно(и не обязательно шелл, можно и «программу на перле»).

Так вот, exe-вирусам в общем случае cmd.exe сто лет не нужен, сам понимаешь.

дык сам понимаешь, эта «фича» связанна лишь с убогостью cmd.exe.

И проблема совсем не в вирусах, проблема в легальных программах, которым тоже не нужен cmd. Потому и уязвимости «нет». Может и есть, никто не знает. Просто сам cmd не нужен и его никто не юзает. А дыр хватает и без cmd. Само отсутствие -x права — зияющая пропасть в безопасности: администратор маздая при всём желании не сможет запретить запуск файлов(разве что заставит своих юзеров юзать ACL, что нереально). В *nix такой проблемы нет, т.к. файлы по умолчанию не запускаются. Т.е. что-бы юзер не скачал и не открыл, оно в любом случае не запустится. В любом *nix'е.

К слову, старых добрых вирусов, которые дописывали бы свое тело к исполнимым модулям, уже и нету.

маздайщики говорят, что «в виндовс уже давно нет вирусов». Т.е. ВООБЩЕ НЕТ. А вот ботнеты таки есть. Наверное на bash-скритпах, да? ☺

Здесь возникает классическая проблема курицы и яйца — вирус изначально должен присутствовать на хосте, чтобы внедриться в ~/.bashrc и т. д. Спрашивается, откуда он там возьмется?

ну например пользователь может скачать из сети файл ~/.bashrc или например ~/.vimrc. А эти файлы (и ещё Over9000 других) запустятся сами. И не поможет тут ни noexec, ни AppArmor, ни SELinux.

Такие дела.

Кстати, к данной уязвимости всё это никакого отношения действительно не имеет. Сама уязвимость к десктопному линуксу не относится.

emulek
()
Ответ на: комментарий от emulek

система(must die) абсолютно беззащитна для exe вирусов

Я бы мог возразить, но не буду (Льюис Кэрролл, «Охота на Снарка»). Хотя ниже фактически возражаю.

Однако скрипт запустить несложно(и не обязательно шелл, можно и «программу на перле»).

Опять же проблема курицы и яйца.

Само отсутствие -x права — зияющая пропасть в безопасности: администратор маздая при всём желании не сможет запретить запуск файлов

Групповой политикой (домашних версий винды это не касается) можно запретить запуск исполнимых файлов из всех каталогов, кроме тех, из которых будет сказано. В сочетании с ACL и отсутствием у юзеров адм. прав эффект примерно такой же, как от -x или опции монтирования noexec.

(разве что заставит своих юзеров юзать ACL, что нереально).

На то и админ, чтобы юзерам самим рулить ACL'ами было не нужно и не можно. Мы же не про домашние компы говорим?

Т.е. что-бы юзер не скачал и не открыл, оно в любом случае не запустится. В любом *nix'е.

Небесспорно — скажем, юзер скачал с FTP-сервера файл с +x в свой ~, смонтированный без noexec (и прочих AppArmor'ов, SELinux'ов, etc). +x никуда не делся, файл можно будет запустить.

маздайщики говорят, что «в виндовс уже давно нет вирусов».

Мы же приличные люди, способные отличить от прочей мебели программы, размножающиеся путем дописывания своего кода к исполнимым модулям? Так вот таких в дикой природе уже несколько лет нету. Другое дело, что в обиходе «вирусом» называется любая малварь (а она таки есть).

ну например пользователь может скачать из сети файл ~/.bashrc или например ~/.vimrc.

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

dexpl ★★★★★
()
Последнее исправление: dexpl (всего исправлений: 1)
Ответ на: комментарий от init_6

А почему бы и нет?

Потому что недостаточно и давно устарело. А в конкурентах показатели лучше и достаточно случаев когда созданное в винде невозможно скопировать в линукс (частенько через те же торренты, сейчас там сделали костыли с обрезанием имени + см. ссылки что я выше кидал, случаев на самом деле гораздо больше). Это раздражает пользователей.

И да ты на даты сперва посмотри сегодняшний NTFS Version 3.1 - 2001

Это ты серьёзно? Надо сравнивать с первой версией NTFS, а это 1993 год (выход Windows NT 3.1) и там уже было UTF-16LE.
Улыбку ещё добавляет (и добивает твою точку зрения) что в Windows 95 (1995 год) добавили VFAT, где есть LFN c той же UTF-16LE что и у NTFS. Чуть позже (1996) вышла Windows 95 OSR2, где уже была FAT32 и у неё LFN с UTF-16LE 255 знаками. А если интересует NT, то до XP ещё был 2000 который уже народ ставил как домашнюю ОС, у кого ПК позволял, а это 1997 год.

К слову, в ReFS обещали позволить 32КБ под имя, но сейчас не ясна судьба этой возможности.

EvilFox ★★
()

в freshports уже всё обновили
я спокоен.

reprimand ★★★★★
()
Ответ на: комментарий от AS

так, при изучении вопроса поближе, окажется, что таки функцию и следовало сделать сразу. :-)

Вообще-то сейсас не времена спектрумов с накопителями на магнитной ленте и информация в компьютере структурируется в виде файлов. Поэтому, если ты не пишешь на баше аналог фотошопа , то последовательности однотипных башевых команд выносятся в отдельные скрипты, которые вызываются одной командой - никаких функций там обычно не требуется. А вот пропустить кусок кода, или скакнуть по нему вверх или вниз не помешало бы. А раз такого там нет, то и использовать этот язык для сложных конструкций - да ну нафиг. Баш сливает по удобству бейсику, который стоял на спектрумах в прошлом веке.

Napilnik ★★★★★
()
Ответ на: комментарий от emulek

" Т.е. что-бы юзер не скачал и не открыл, оно в любом случае не запустится. В любом *nix'е."

Ну да, конечно, скачал юзер пакет «для своего линукса», и что ему помешает его установить, запустив прописанные при установке файлы? К тому же,«оно в любом случае не запустится» - это ярое 4.2. Браузер скачает файлы и аккуратно сохранит права запуска. Так что достаточно разместить скрипт скрыто на сайте, а затем запустить его удаленно из кеша браузера/или папки «загрузки».

anonymous
()
Ответ на: комментарий от anonymous

«Сасай, лалка»

Если что-то выглядит как говно, пахнет как говно и говорит как говно - значит, это говно. Мне казалось, только клинические кретины могут отрицать факт того, что ядро NT основано на коде OS/2.

anonymous
()
Ответ на: комментарий от emulek

Напомню для нубов: GOTO в бейсике нужно потому, что там адресация на номера строк.

Нет же. Номера строк — пережиток времён, когда полноэкранных редакторов текста особо не было, а пользоваться ed'ом юзеров бейсика не учили. Впрочем, было сносно, учитывая всякие RENUM и прочую муть.

А вот GOTO (и позже разные извраты вроде GOSUB) в васике нужно потому, что он не сразу умел в функции.

В баше функции есть, поэтому goto особо не нужен. Впрочем, bash — говно и когда код достаточно сложен, чтобы юзать функции, лучше использовать настоящий язык. И вообще, использование bash не как интерактивного шелла — изврат.

x3al ★★★★★
()
Ответ на: комментарий от EvilFox

Потому что недостаточно и давно устарело.

Тебе показать где у ядра linux находится багзилла?

Это раздражает пользователей.

Это раздражает идиотов которые вместо того чтобы просто и спокойно жить в GNU/Linux продолжают грызть кактус и при этом натыкаются на самые разнообразные косяки.

Это ты серьёзно?

Нет давай тогда чтоб совсем по чесноку с DOS-ом сравнивать где 8.3 и насрать.

А ваще вон Reiser4 3,976 bytes и никаких проблем совместимости со сраной говновендой если для тебя это так критично.

И еще момент большинство ФС(более 20 штук) в том списочке юзают именно 255 bytes (а это 127 unicode или 254 ASCII символов) а единственная сраная говновенда и еще 5-6 ФС считают в „символах“.

Так вот «стандарты» задаёт не меньшинство и именно поэтому идиоты с говновендой обязаны страдать.

init_6 ★★★★★
()
Ответ на: комментарий от Napilnik

Баш сливает по удобству бейсику, который стоял на спектрумах в прошлом веке.

Одно наличие функций уже даёт выигрыш. :-) Не говоря уже о других конструкциях.

AS ★★★★★
()
Ответ на: комментарий от AS

Одно наличие функций уже даёт выигрыш. :-) Не говоря уже о других конструкциях.

Какие функции? Функции там появились уже намного позднее. А сперва был фортрановский синтаксис с GOTO который ломал неокрепший мозг.

init_6 ★★★★★
()
Ответ на: комментарий от argv_0_

А почему обязательно хуже?

По факту.

<КО>Они разные. Потому что возникли для решения разных задач. Бейсик - высокоуровневый язык для программирования относительно простых алгоритмов на ПК, который в силу ограниченности ресурсов тогдашних ПК кое-где приспособили ещё и в качестве шелл. В UNIX же, шелл изначально задуман для интерактивной работы, а использование в качестве интерпретатора скриптов стало приятным и полезным дополнением благодаря тому, что all is file.</КО>

Между прочим, что бейсик на простых ПК, что шелл на других ПК выполняли одну и ту же задачу, только бейсик делал это лучше и удобнее. К сожалению, аппаратная часть у большинства ПК перестала развиваться, в результате развитие получили только командные языки, которые смогли перебраться на ИБМ ПК. Баш развивался и дальше не потому что был лучший, а просто ему было где жить, а на линуксах ему особо и нет альтернативы - что Линус воткнул в терминал, тем на нём и пользуемся.

А что в продолжении? :)

Вирт, после паскаля, придумал несколько ЯП только чтобы как-то обойтись без гото. Вот только смысла в них немного, и поэтому первый его язык более поздних заруливает.

Napilnik ★★★★★
()
Ответ на: комментарий от init_6

Какие функции? Функции там появились уже намного позднее.

Я про bash, если что...

AS ★★★★★
()
Ответ на: комментарий от anonymous

Для игр Linux не особо подходит - вполне естественно и это факт.

А габен думает иначе, хотя лучше бы они ReactOS развивали, но слишком сыро.
Из функционала для игр будет нехватать ENBSeries (есть аналог для OGL для винды, но толком неразвитый) и прочие инжекторы графона (SweetFX и ещё что-то было + инжекторы сглаживания + инжекторы исправления недостатков отдельных игр), GlovePIE/FreePIE. Отстутствие эксклюзивного экрана вроде можно пережить.
Ещё говорили в линуксе проблемы с поддерживаемой версией OGL, т.е. она отстаёт от той что идёт с драйверами производителей под винду (внезапно), но думаю габен это или уже исправил или исправит в ближайшее время. Остаются только некоторые тормоза, но ядро думаю можно подтянуть под игровую станцию и разницы особой не будет. Всё решаемо. Остаётся одна возможная беда, DX12 может выйти раньше OGL NG, а значит на винде всё тяжёлое будет летать, а на линухе тормозить пока не выйдет OGL NG.
Хотя не понятны дела со звуком, как там с EAX и аналогами? Креатив что-то делает в этом направлении или забили?
С играми у линукса меньше проблем чем с мультимедией я считаю.


Про звук: какие у тебя проблемы с микшированием?

У меня никаких, ибо давно не использовал на своём железе линух (виртуалка не в счёт), но раз люди пишут, значит проблемы есть, возможно из-за поноса дистрибутивов где в каком-то облажались вахтёры-мейнтейнеры.

Где там проблемы конкретно линукса

Ну ты смотри Software support.

Пользуйся, лично твои проблемы

Кто там пытаеся завоевать мою домашнюю ПК? Это не мои проблемы. Дома сейчас стоит винда и проблем не испытываю.
Дело в том что пользуемся мы в основном программами, а не ОС. Хотя особенности ОС тоже важны. Да тут даже местами не совсем в конечных программах дело, взять тот же SVP, это программный комплекс включающий в себя много разных компонентов, он требует чтобы в системе было что-то типа DirectShow и проигрыватели с промежуточными компонентами его поддерживали.
К сожалению такого на линуксе нет. В винде я могу к PotPlayer или к примеру MPC: HC/BE подключить любой сторонний фильтр, фильтром может быть как декодер, так энкодер или вообще рендер! А в линуксе передо мной стоит такое УГ типа VLC или MPlayer где к каждому пиши свой исключительный костыль. Хотя казалось бы вот есть GStreamer давно, но воз и ныне там (хотя может сам GStreamer УГ?, но тогда дела совсем плохи). Сейчас де-факто на винде лучшие мультимедийные возможности. Видео в лучшем качестве только на ней (аналога рендеру madVR кстати тоже нет).

Понимаешь, на вкус и цвет.

Да. Вот я и не зову тебя на винду, винда она не панацея, но для меня линух сильно хуже для дома чем она.

потом офис

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

потом антивирь (ежегодно)

Стоит (уже из коробки в 8рке) на всякий случай security essentials, он бесплатный и мне хватает.

потом терпеть кучу заразы, с которой надо бороться,

А ты не выключай UAC (лучше его переключить в режим пароля), не запускай с правами администратора всякую неподписанную левоту, настрой фаэрвол в через групповую политику (оснастка повышенной безопасноти это не то и стим срёт туда спокойно, а вот если в групповой политике кое-что поменять, то срать он в обычные правила может сколько угодно, только они работать не будут пока явно не будут добавлены в правила фаэра групповой политики).
С безопасностью в винде надо относиться ответственно, там есть тонкости.
Если параинок то можно у администратора отнять стрёмные права (установка драйверов и кода ядра, отладка программ), запретить запуск неподписанного ПО, удалить из корневого хранилища все вызывающие подозрения сертификаты... Да много можно сделать.

терпеть странности с дровами (под линуксом я давно забыл, что есть необходимость их устанавливать

Винда тоже очень многое автоматом ставит.

искать в сети и отдельно скачивать каждую мало-мальски нужную программулину...

Предлагаешь миллионы программ класть в хранилище? За всем мейнтейнеры не смогут уследить. Хранилище в том виде что сейчас есть полезно до тех пор пока программ не слишком много.
А ещё очень прикалывает обновлять ОС ради обновления программы. На винде такое случается гораздо реже.

Чего стоит только metro - извращенцы, конечно, кричат, что это лучше, чем в семерке или ставят сторонний софт, но это от упоротости.

Метро спорная штука. В некоторых вещах он действительно удобнее, но далеко не везде (как по мне основная гадость это навязываемые сетевые подключения в метровиде)

И спорить можно по куче пунктов - я тебе скажу так: на вкус и цвет фломастеры разные, поэтому если ты лично не переедешь на десктопный линукс - твои проблемы.

Повторяюсь, не мои, а тех кто его хочет в дом принести в массы.

В остальном - даже нет желания объяснять, что такое реклама и почему не выгодно было распространять Linux в массы на десктопе.

Ну теперь-то понятно))) Вон сколько недавно всяких уязвимостей повылезло, а с башем просто типичный случай меганеуловимого джо.

Да и не для десктопа оно делалось изначально. Проблемы есть везде.

Ну вот и расскажи это Csandriel, а не мне.

EvilFox ★★
()
Ответ на: комментарий от Napilnik

Между прочим, что бейсик на простых ПК, что шелл на других ПК выполняли одну и ту же задачу

Ну-ка, расскажи мне, какие в BASIC предусмотрены средства для исполнения внешних команд.

AS ★★★★★
()
Ответ на: комментарий от EvilFox

А ещё очень прикалывает обновлять ОС ради обновления
программы. На винде такое случается гораздо реже.

Ну так не обновляй. Просто в винде нет иного выхода.

AS ★★★★★
()
Ответ на: комментарий от dexpl

система(must die) абсолютно беззащитна для exe вирусов

Я бы мог возразить, но не буду

И правильно. Конечно Windows тоже проверяет ЭЦП ПО. Проблема лишь в том, что на подписанном Microsoft ПО далеко не уедешь. В отличие от Linux, в котором можно обойтись офф репозиторием.

Т.о. на практике по любому ты будешь ставить неподписанное и непроверенное ПО. Увы.

Опять же проблема курицы и яйца.

Не совсем. Тот же vim у тебя есть. И если ты открываешь текстовый файл, то _исполняется_ конфигурационный файл ~/.vimrc. Это касается и многих других файлов конфигурации. Причём для их _запуска_ вовсе не требуется разрешения +x. Уведомлений пользователь тоже никаких не получает. Кроме «защиты неуловимого Джо» тут нам ничего не поможет.

Групповой политикой (домашних версий винды это не касается) можно

ладно сказок. Я видел тысячи компьютеров IRL, и среди них не было ни одного, с этими твоими «политиками». Хорошо, если там пользователь «юзер», а не «Администратор». Я уже сказал, что я в курсе про это ваше «можно сделать», дык толку, если никто не делает?

Мы же не про домашние компы говорим?

и про них тоже. Или на них тебе наплевать? Разве можно быть беременной только на работе?

Небесспорно — скажем, юзер скачал с FTP-сервера файл с +x в свой ~

не. +x сменится на -x. Это надо скачать tarball, и его распаковать. Или вручную chmod +x.

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

просто теперь пути распространения более изощрённые. Вирус вполне может быть например плагином к браузеру, прикидывающийся безобидной малварью. На самом деле, оно далеко не только и не столько показывает рекламу, а ещё например ворует деньги, спамит в аську, и до кучи себя любимую отправляет вашим друзьям из ваших контактов от вашего имени. Ну да, считай это «не вирусом». А по моему мнению — вполне себе вирус, хоть и не байта в EXE не меняет. Пользователи считают точно также, и они безусловно правы.

ну например пользователь может скачать из сети файл ~/.bashrc или например ~/.vimrc.

Пользователь сам много чего может — одному моему товарищу один из его юзеров приволок на диагносику свой домашний системник, по которому били топором

неисправность после удара топором очевидна для любого. А вот то, что систему может завалить какой-то скаченный файл(тем боле скрытый) мало кому очевидно. И речь даже не о системе, система бесплатна и доступна. Речь о ВСЕХ твоих документах.

Да и о системе тоже, вот например:

из браузера удобно ставить rpm с сайта http://software.opensuse.org/search - он еще и реп добавит (качать на диск, в консоле лезть к нему, команду вводить, удалять - не удобно считаю)

пруфлинк: http://linuxforum.ru/viewtopic.php?pid=424359#p424359

это не единичное мнение, все так делают. Да, пока от топора вреда больше, т.к. 1% красноглазиков-убунтоидов не интересен вирусмейкерам.

emulek
()
Ответ на: комментарий от emulek

К тому же, атрибута -x в WinFS нету, потому если в *nix ты исполняемый файл по дефолту не исполнишь, то в маздае — пожалуйста

Это не совсем так. Хотя тут ключевое

по дефолту

В винде можно сделать так чтобы по умолчанию файлы не исполнялись, есть такой флаг на исполнение в безопасности, но подумай только сколько хомяков взбесится? Многие из них даже UAC видеть не могут и отключают, шизики.
А ещё для больше удобства есть поток NTFS Zone Identifier.

EvilFox ★★
()
Ответ на: комментарий от anonymous

Ну да, конечно, скачал юзер пакет «для своего линукса», и что ему помешает его установить

ЭЦП маинтейнера помешает. Если это конечно «для своего линукса», а не какой-то левак из PPA.

К тому же,«оно в любом случае не запустится» - это ярое 4.2. Браузер скачает файлы и аккуратно сохранит права запуска. Так что достаточно разместить скрипт скрыто на сайте, а затем запустить его удаленно из кеша браузера/или папки «загрузки».

не ври, маздайщик.

Поставь Linux, подыми LAMP. У меня есть под рукой. FireFox открывает файл http://localhost/test.bash как текстовый файл. А если сохранить, то права на этот файл будут 0644(даже если права на сервере 0777).

emulek
()
Ответ на: комментарий от emulek

а можно пример кода, в котором тебе нужно «заменить goto»?

Он уже отлажен и нормально работает, теперь гото понадобилось бы только для скакания по патчам - больше одного раза патчить файлы нехорошо. Проблема решилась линуксобашевым методом: один скрипт для сборки со всеми патчами, другой - без них. Лепить тут функции - коряво и «да ну нах, это же не С/С++». Да, каждое полное выполнение скрипта жрёт не минуту и не две.

#!/bin/bash 

FPC_VER="fpcbuild-2.6.4"


LIBGDBKATALOG=`pwd`/libgdb
echo $LIBGDBKATALOG
ln -s $LIBGDBKATALOG/libgdb.a $FPC_VER/fpcsrc/packages/gdbint/src/libgdb.a
cd $FPC_VER
KATALOG_SBORKI=`pwd`/fpcsrc
#exit

# изготовление новых файлов gdbver.inc и gdbver_nogdb.inc
cd fpcsrc/packages/gdbint/src
fpc gdbver.pp
./gdbver -o gdbver.inc
cp gdbver.inc ..
./gdbver -o gdbver_nogdb.inc
cd ../../../..

# установка патчей 
cd $KATALOG_SBORKI
cp -f ../../patci/video.pp  ./rtl/unix/
cp -f ../../patci/gdbint.pp ./packages/gdbint/src
echo "___________ патчится fpcsrc/packages/gdbint/Makefile"
patch -p0 < ../../patci/gdb_link.patch
echo "___________"
read -p "Нажмите Enter для продолжения..."
patch -p0 < ../../patci/fpkeys.patch
patch -p0 < ../../patci/views-division_by_zero.patch
patch -p0 < ../../patci/mouse_click-1.patch
patch -p0 < ../../patci/process_window_info.patch
cd ..


echo "_________________________________"
pwd
make all GDBVNATUREDIR=" -Fl$LIBGDBKATALOG" LIBGDBFILE=$LIBGDBKATALOG/libgdb.a
cd ../

Напомню для нубов: GOTO в бейсике нужно потому, что там адресация на номера строк. В bash адресация блочная, операторы заключаются в блоки, например

Для нубов, напоминаю, что метки типа :1, :2, :10, :20 отлично работают и в других языках, просто потому что они удобны, а блоки кода гото не помеха и одно другому не мешает а помогает.

В BASIC'е блоков нет, потому и требуется goto для перехода на другой блок.

Где грибов таких забористых достал? Это в бейсике то нет блоков? Да они там по умолчанию. Интерпретатор выполнял код по строкам, в которые можно было запихнуть столько кода, сколько влезет. И чем больше операторов в строке, тем в среднем быстрее выполнялась программа.

Т.о. GOTO в bash'е тупо не нужно.

Если им особо не пользоваться, то и не нужно, вот только на бейсике можно было и игру сваять, а на баше это мазохизм.

Но зачем тебе такая оптимизация в bash?

Смотри выше - для экономии кучи времени при изменении процесса сборки кода, в котором что-то идёт не так. Там много чего надо, не только гото.

учи матчасть, и всё будет хорошо. В автобусе нет цепного привода к ведущим колёсам, а в моём велосипеде — есть. Из этого следует, что автобус «не круто»?

Учи матчасть чтобы не тупить даже на своих примерах. Велик - он лёгкий и обычно без амортизатора на заднем колесе, поэтому цепь там живёт долго. А вот уже на мотоцикле, цепь приводящая в движение заднее колесо - не очень круто, потому что растягивается при любом удобном случае, а то и рвётся. И при этом и велик и моцик в принципе одноместные транспортные средства, в отличии от автобуса, только скорость езды у них разная.

Napilnik ★★★★★
()
Ответ на: комментарий от AS

Одно наличие функций уже даёт выигрыш. :-) Не говоря уже о других конструкциях.

И нахрена нам там функции, если например гимп на баше пейсать нежелательно? А вот на бейсике в «как стать президентом», бильярд, картишки и т.д. гамал и с удовольствием лазил по коду. Если написать такое на баше, то удовольствия от ковырянии в том коде будет - шиш да ни шиша.

Napilnik ★★★★★
()
Ответ на: комментарий от AS

Ну-ка, расскажи мне, какие в BASIC предусмотрены средства для исполнения внешних команд.

Во первых, ты сравниваешь применение нового железа и старого. А во вторых, бейсик тем и был хорош, что в нём подзадача решалась несколькими путями, то есть была некоторая избыточность возможных решений. Так что и для этой задачи в нём есть решение, просто про запас: операторы POKE и PEEK. Программы на бейсике часто писали в ячейки памяти и брали оттуда данные.

Napilnik ★★★★★
()
Ответ на: комментарий от init_6

Ну ты фанатик и уже начинаешь полный бред нести. Действительность же такова что самые распространённые системы — Windows и Mac OS X — поддерживают 255 юникодных (UTF-16) символов.
А у рейзера хоть и написано под 4КБ, линукс (ну, всё что связано с ФС там) не даст давать такие имена файлам. Читай что пишут в багтрекере etersoft.
И советую меньше фанатизмом увлекаться, а то деградация во все поля.

EvilFox ★★
()
Ответ на: комментарий от EvilFox

Действительность же такова что самые распространённые системы — Windows и Mac OS X — поддерживают 255 юникодных (UTF-16) символов.

„Самые распространенные“ среди кого? А то top500 и статистика мобильного рынка говорит мне об обратном. К тому-же разговор шел про то, что 20 ФС это в любом смысле всяко больше чем 6 или 7 а ты слез на какое-то 0,4% дерьмо по мнению top500 за июнь 2014 года.

А у рейзера хоть и написано под 4КБ, линукс (ну, всё что связано с ФС там) не даст давать такие имена файлам.

линукс (ну, всё что связано с ФС там)“ это модуль ядра Reiser4 и юзерспэйсные утилитки, к примеру для создания ФС. И больше там ВНЕЗАПНО ну ничего с ФС не связано. Такие дела. А если и есть отдельный упоротый софт так его вполне можно и исправить в отличие от вендодерьма.

init_6 ★★★★★
()
Ответ на: комментарий от AS

И тут нет. OS/2 очень хорошо поддерживала и DOS-приложения и Win16

А что же в комментариях пишут:

IBM просто тупо на нее забила. Чего стоил баг с зависанием винды из-под дос-машины, когда в своп делалось echo. Баг, кочующий с 2.12 в Мерлина

Но то что это по большей части вина IBM верно. Не было бы такого раздолбайского отношения история могла бы сложиться иначе. Может там вообще был внутренний сговор с целью похоронить OS/2?
В какой-то мере мне самому обидно что похоронили OS/2, сейчас уже забыл конкретно какие, но какие-то фишки у неё были очень интересные, чего по каким-то причинам не вошло в Windows.

EvilFox ★★
()
Ответ на: комментарий от Napilnik

Если написать такое на баше

Ну напиши на бэйсике init-скрипт. :-)

Очевидно, что не стояло задачи писать на баше графические приложения. А что касается изучения кода, бэйсик - полный мрак по сравнению со структурированными языками. Не даром поздние реализации бэйска в эту же сторону пошли. И да, если ты думаешь, что ты тут один на бэйсике писал, то заблуждаешься. Мне вот его тоже поковырять довелось. На Агате, на МК-85. gwbasic, в конце концов.

просто про запас: операторы POKE и PEEK. Программы на бейсике
часто писали в ячейки памяти и брали оттуда данные.

И что ?

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от EvilFox

Чего стоил баг с зависанием винды из-под дос-машины

Стрелять в ногу - это больно. :-) Да, вирусописатели, может, что-то и нашли бы. Если бы вирусы для OS/2 получили распространение. В своп писать, наверное, надо было из OS/2, а не из DOS-сессии ? И своп, очевидно, не OS/2-шный ? Из хост-системы и сейчас виртуалке можно сделать плохо.

но какие-то фишки у неё были очень интересные, чего по каким-то причинам не вошло в Windows.

Там было много чего интересного. Я ей пользовался с 94 по 2002 где-то, хотя примерно с 2000 Linux в дуалбуте был уже, может, с 99 даже. Но OS/2 жила на отдельном HDD ещё долго, пока HDD не помер. Кстати, я его ещё из компьютера не выкрутил, так и торчит, в надежде на реанимацию, который год. :-)

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)

Щас Поттеринг будет опять пиариться, что уж теперь то всем должна быть понятна сила ОпенСорс дырявых прог!

menangen ★★★★★
()
Ответ на: комментарий от init_6

„Самые распространенные“ среди кого?

Мы же про домашние системы говорим или ты лишь бы влезть?

top500 и статистика мобильного рынка

Суперкомпьютеры и мобильный телефоны это не домашние станции.
Хотя помимо дома в корпоративном сегменте тоже будут проблемы — там тоже есть любители длинных имён файлов.
Да и даже если взять мобильный рынкок, то у iOS 255 UTF-16, так что вывод твой ошибочен.

Дальше у тебя пошёл какой-то очередной бред про top500. Фанатизм до добра не доведёт.

это модуль ядра Reiser4 и юзерспэйсные утилитки, к примеру для создания ФС. И больше там ВНЕЗАПНО ну ничего с ФС не связано. Такие дела. А если и есть отдельный упоротый софт так его вполне можно и исправить

При ReiserFS есть ограничение Linux VFS. С Reiser4 другая история, он не включён в ядро и давно толком не развивается + были какие-то проблемы, или уже что-то изменилось?.

EvilFox ★★
()
Ответ на: комментарий от dexpl

Групповой политикой (домашних версий винды это не касается)

Pro-версию (не энтерпрайз) домашней виндой считать можно?

EvilFox ★★
()
Ответ на: комментарий от AS

Ну напиши на бэйсике init-скрипт. :-)

На линуксе бейсик нормально не реализован, а баш реализован но коряво, хотя, некорявый баш, это фантастика. Экономия символов приводит к тому, что можно накосячить в логике и синтаксисе но не поймёшь где и как - программа всё равно будет что-то делать и может даже не заругается. Просто иллюстрация к мультфильму «Вовка в тридевятом царстве». Там он тоже, что-то приказывал, а слуги исполняли. По своему.

А что касается изучения кода, бэйсик - полный мрак по сравнению со структурированными языками.

Какой именно? Бейсиков много, и тот с которым контактировал, был очень даже зашибись. Конечно, немного улучшить его можно было, но если делать это теперь, то проще сделать всё заново, например, взять за основу скриптовой паскаль для игр. Луа же используют где попало, и ничего, хотя он вроде как игровой.

И да, если ты думаешь, что ты тут один на бэйсике писал, то заблуждаешься. Мне вот его тоже поковырять довелось. На Агате, на МК-85. gwbasic, в конце концов.

Наоборот - не совсем понимаю, с чего ругают бейсик те, кто использовал не мелкомятый вариант проецируя его корявости на все версии. Я не говорю, что бейсик самый замечательный ЯП, но уж не корявее баша.

И что ?

И можно через них реализовать много чего а потом запустить программу в машинных кодах. В одной игре так был реализован побайтный вывод картинки на экран. В память загружалась подпрограмма из 12 байтов, а потом игра меняла в ней байты ответственные за то, что и сколько скопировать на экран, а потом запускала.

Napilnik ★★★★★
()
Ответ на: комментарий от EvilFox

При ReiserFS есть ограничение Linux VFS. С Reiser4 другая история, он не включён в ядро и давно толком не развивается + были какие-то проблемы, или уже что-то изменилось?.

Смысл разговаривать с тем кто видит лишь то что хочет видеть?

Reiser4 не останавливал своего развития. В ядро он не включен так же как и ZFS хотя есть zfsonlinux и тем кому оно надо никаких проблем нет. А теперь мы поговорим не о длине имен файлов а других не менее нужных и полезных вещах. К примеру снапшоты которые (ОЙ) так и не появились в сраной говновенде и в то же самое время искоробки доступны любому пользователю GNU/Linux да к тому-же еще и в нескольких реализациях (lvm2, btrfs, zfs…). И я напомню что эти а так-же многие другие фичи пользователям говновенды обещали в ВыньФС которая (ОЙ) почему-то не вышла… видимо просто потому что индусам столько травы не завезли… Так что догонять нужно сраной говновенде. И догонять оооооочень много. А длина имен файлов… Давай продолжай дальше смешить этим мои тапочки. Ну и да соскочить можно тем что „мы переустанавливаем и нам норм“ именно так и поступает 0,4% потому что это их судьба.

init_6 ★★★★★
()
Ответ на: комментарий от init_6

Смысл разговаривать с тем у кого религия? Причём ещё и изуверская. Ты только вредишь линуксу, вместо того чтобы указывать на ошибки, ты их всячески пытаешься скрыть и отвести внимание, будто бы и нет проблемы, типичное «кококо нинужно». Ну и вообще стрелки перевёл, какой молодец.
Ты только пойми у меня нет целей закопать или опустить линукс, просто у него есть проблемы, а ты (будто) ужаленный так истерично его защищаешь, прямо как загнанный в угол. Так и хочется некоторые вещи написать, но оставлю это анониму.

Мы сейчас говорим определённо про длину имен и ничего другого.
И почему же ты только венде противопоставляешь, а не макоси? Фанатизм он такой, откуда ты этого говна понабрался? На опеннете пересидел?

EvilFox ★★
()
Ответ на: комментарий от EvilFox

Ну и вообще стрелки перевёл, какой молодец.

Хотел что-то решить и всё ещё не нашел где у ядра linux багзилла? Несчастненький…

просто у него есть проблемы

У дерьмовенды этих проблем намного больше. Просто многие из них не видны невооруженным взглядом… а некоторые не видны даже вооруженным.

Мы сейчас говорим определённо про длину имен и ничего другого.

Нет мы начали с того что ты начал тыкать в сторону ext2 1993го года выпуска с позиции NTFS Version 3.1 2001го года… И почему-то тебе не понравилось что в том же 1993м был NTFS Version 1.0 который из Windows NT 3.1 и который там никто не использовал потому что он никому там не был нужен и потому-что жрали в те времена FAT и это было нормой.

А снапшоты это не менее нужная вещь чем длина имя файла. Даже не так. Снапшоты это намного более нужная штука… И где они в этой твоей 0,4% говновенде? Ко-ко-ко длины имени файла мало? А что ты сделал для того чтобы это изменить? Или ты бедненький не знаешь с чего начать? Так я тебе уже несколько раз про багзиллу сказал. Ты уже оформил баг или предпочитаешь ко-ко-ко на ЛОРе о том как фсио плохо?

init_6 ★★★★★
()
Ответ на: комментарий от Napilnik

На линуксе бейсик нормально не реализован

Ну напиши autoexec для DOS. Не принципиально.

бэйсик - полный мрак по сравнению со структурированными языками.

Какой именно ?

Классический, с нумерацией строк, хоть где (я ещё СМ-4 забыл, кстати; но там больше фортран пользовал). Который прошёл с закосом под процедурность (TurboBasic ?), уже несовсем бейсик.

И можно через них реализовать много чего а потом запустить программу в машинных кодах.

А теперь представь, что у тебя носитель с набором таких программ, и ты их там выбираешь, грузишь и запускаешь. Это был бы барьер не только для домохозяек. :-)

AS ★★★★★
()
Ответ на: комментарий от CoolAller

не знаю, я приводил для 4.3.9-2, а оно как раз из testing/main
что касается security, то подключай для stable, в тестинг-секьюрити че-то пусто...

PerdunJamesBond
()
Ответ на: комментарий от anonymoos

пок-пок-пок продакшн, ко-ко-ко. Винду везде поставим

anonymous
()
Ответ на: комментарий от AS

Ну напиши autoexec для DOS. Не принципиально.

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

Классический, с нумерацией строк, хоть где

Версии «Бейсик Классический» не знаю, а нумерация строк штука хорошая и удобная, для не очень больших программ самое то. Проблема возникает только для больших программ: много ктода внутрь не вставишь. В мелких это не чувствовалось: строки ставили с шагом 10, а в 9 строк можно было запихать огого, особенно если оператор занимал 1 байт. Ну а если не влезет, то можно написать в другом месте подпрограмму или использовать гото.

А теперь представь, что у тебя носитель с набором таких программ, и ты их там выбираешь, грузишь и запускаешь. Это был бы барьер не только для домохозяек. :-)

Да нормально всё - в современном мире аналог этого называется «ассемблерные вставки».

Napilnik ★★★★★
()
Ответ на: комментарий от Napilnik

то уже написаны тысячи загрузчиков для спектрумоских игр

Ну и вот сравни загрузку башем (да или command.com-ом) и бейсиком. Есть разница ? У каждого своё предназначение.

Ну а если не влезет, то можно написать в другом месте подпрограмму или использовать гото.

Вот-вот. Правда, у некоторых реализаций ещё ренумерация была. Но, всё равно, кошмар и ужас-ужас.

в современном мире аналог этого называется «ассемблерные вставки».

Ага. Для банальной загрузки приложения.

AS ★★★★★
()
Ответ на: комментарий от AS

Ну и вот сравни загрузку башем (да или command.com-ом) и бейсиком. Есть разница ? У каждого своё предназначение.

На бейсике круче было. То что у баша предназначение быть корявым на нелинейных действиях, это уже давно понятно.

Вот-вот. Правда, у некоторых реализаций ещё ренумерация была. Но, всё равно, кошмар и ужас-ужас.

Никакого ужаса, просто небольшие недоделки ранних версий. В более поздних версиях номера строк можно было оставить виртуальными, просто чтобы смотреть на них в редакторе если нужно, в редакторах такая фича сейчас есть. Ну а раньше редактор кода встраивался в ОС, логично сначала сделать всё в кучу а потом разделить по сортам и свойства. Зато из номеров строк произошли метки цифрами, они удобнее буквенных - меньше похожи на операторы.

Ага. Для банальной загрузки приложения.

Для загрузки банального приложения дёргать подпрограммы в машинных кодах было ненужно, это уже хаки, в которых каждый извращался как мог. Например, выставить цвет шрифта равный цвету фона и пусть почитают, или всё вписать в нулевую строку и пусть поредактируют, или на магнитном носителе сделать небольшой баг который помешает копированию. Не путай хентай с фансервисом, затрудняющие хаки и сейчас есть. Сейчас в ходу операторы пишущиеся по буквам, памяти на это хватает, поэтому добавить в обновляемый ЯП новый оператор или несколько процедур не так и невозможно.

Napilnik ★★★★★
()
Ответ на: комментарий от Napilnik

То что у баша предназначение быть корявым на нелинейных действиях, это уже давно понятно.

Никаких корявостей. goto не нужен, а использование его для отладки, это какое-то нечто. Мне даже в голову не приходило.

Для загрузки банального приложения дёргать подпрограммы в машинных кодах было ненужно, это уже хаки, в которых каждый извращался как мог.

Ну начинается. Грузи тогда загрузчиком на C. Bacis сейчас совершенно не нужен. Ни как замена bash, ни как язык программирования. Мавр сделал своё дело, что называется.

AS ★★★★★
()
Ответ на: комментарий от AS

Никаких корявостей. goto не нужен, а использование его для отладки, это какое-то нечто. Мне даже в голову не приходило.

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

Ну начинается. Грузи тогда загрузчиком на C. Bacis сейчас совершенно не нужен. Ни как замена bash, ни как язык программирования.

Скажем лучше, С сейчас не нужен кроме как для совместимости с теми кто без него не может. Это тёмный пережиток прошлого, альфаверсия на стероидах. Но ты же не распространяешься, что он должен умереть, а грузишь на бейсик, который был лучше баша.

Napilnik ★★★★★
()
Ответ на: комментарий от Napilnik

Ты ещё в машинном коде прыжки запрети и построй для этого специальный беспрыжковый процессор.

Ты не путай код на языке высокого уровня, который должен быть удобно читаемый и хорошо тиражируемый, с просессоро-ориентироманными инструкциями.

который был лучше баша.

Я вообще не понял, откуда началось это сравнение и кому в голову пришло. Я с goto начал читать. :-)

Так вот, как язык, Basic направлен на написание разных программ, обладает математикой, а где надо, там и графическими функциями. В этом плане он, естественно, богаче, чем bash, у которого свои задачи, совсем другие. Но сам синтаксис у bash на голову выше, как как разработан с учётом уже существующего опыта, в том числе и бейсика. Говорить, что бейсик лучше, так как у него goto есть и структура кода хорошая - это бред. А вот утверждать, что на нём можно больше, чем на баше сделать, это можно, оно верно.

AS ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.