После 14 месяцев разработки сформирован релиз набора GNU inetutils 2.5 с коллекцией сетевых программ, большая часть которых перенесена из BSD-систем. В частности, в состав входят inetd и syslogd, серверы и клиенты для ftp, telnet, rsh, rlogin, tftp и talk, а также типовые утилиты, такие как ping, ping6, traceroute, whois, hostname, dnsdomainname, ifconfig, logger и т.п...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=60366
По-моему, такая же петрушка с unshare. Не помню, почему не работало, но в итоге всё запускалось без изоляции.
Плин, ну как так-то. Я даже в своём совсем уж вспомогательном хламе на пыхе результат setuid/setgid проверяю обязательно...
Причём не только наличие ошибки, а то, что целевые uid/gid реально встали...
Вот ты даже на пыхе проверяешь, а ылитка из лучших погромистов-системщиков - нет.
Так и живем...
а что проверялка правильно проверила - уверен, наверняка - не проверяет!шах и мат белкам-истеричкам! (особенно свитчащим uid из под php)
Проверялку для проверялки городить не стал - иначе придется потому проверялку для проверялки проверялки делать, и не только. Отдашь это потом на рефакторинг и декомпозицию - так они вообще в рекурсию уйдут.А в чём проблема свитчить uid из-под php? :)
Даже больше огорчу - я там ещё и форкаюсь.
> А в чём проблема свитчить uid из-под php? :)действительно...
эх, а казался ведь грамотным
Ну уровень опеннета - он теперь весь такой.
ext/posix это реально простейшие обертки вокруг стандартных функций, кроме их вызова и конвертации между raw данными и zval* там ничего нет. Не вижу проблем.другое дело, что непонятно, зачем php пускать рутом, проще инитом запустить сразу с нужными uid. Во всяких там модных systemd это совсем просто. Единственная видимая причина - это слушать привелегированный порт или что-то такое, но делать это через пхп как-то странно
проблема именно в пхп от рута.
Он никогда на это не рассчитывался, там есть пол-миллиона способов исполнить вообще не тот код что в файлике, сколько костылей не пихай и как аккуратно не вычищай.
Эх, вот бы были языки с доказанной корректностью, правда?
ну чем бы конечно дитя не тешилось. Я даже могу нафантазировать такую уникальную конфигуру где это теоретически было бы возможно. Но не хочу тратить время на этих убогих.В целом я бы максимум проверил отсутствие ошибки - да и то скорее по привычке что раз что-то возвращается то надо бы проверять.
Потому что если у тебя в системе умудряется не сработать или сработать как-то не так setuid - тут уже проверяй не проверяй - надо на ней поставить крест и кол осиновый заколотить в могилку, а не rlogin чинить.
В общем - очередной маразм от белок-истеричек.
Ну, оно просто реально критичное. Если оно правильно не встанет, даже вот так вот тупо - то часть дерева отправится в процессе в свободный доступ...
> Если оно правильно не встанетто у тебя в системе уже й..ный п-ц творится. И если бы это не был код на пехепе- еще можно было б о чем-то думать, ну я не знаю, правда, о чем - kernel panic как-нибудь синициировать, а тут уже думать вообще не о чем.
Писали деды. В то время не было принято ошибки проверять, это философия UNIX - "Worse is Better", простота важнее, чем корректное поведение.
Да я так-то тоже дiд уже, но бл******, это ж критическая операция.
Дело не в дедовстве, а в том, что гну писалось не самыми умными студентами буквально за еду. А поддерживать, конечно, это никто не хочет.
>гну
> * Copyright (c) 1985, 1993
> * The Regents of the University of California. All rights reserved.
> *
> * This code is derived from software contributed to Berkeley by
> * Rick Adams.Это писалось элитой из BSD.
Илитой!
Так это и есть та студенческая илита, писала за зачеты.
9 из 10 современных студентов с трудом пишут что-то сложнее print "hello world", а на то что пишут без слез смотреть трудно.
Намекаешь на то, что в GNU ничего не сделали вообще?
Лучше тогда разработчик Рик Адамс, чем рефакторщик Рич Столлман.
Но почему-то отзывы о коде самого Столлмана не такие хорошие, как можно было бы ожидать от гения-создателя великих программ.
Зато ЧСВ у многих из них до небес.
"А вот я! писал целое ГНУ, я гуру!"
А тебе в опенсорсе "никто ничего не должен" бгг)
И фанатики запретят даже осуждать бракоделов
Проверять? У тебя тоже такого кода напихано?if(-1==(rlen=read(fd,buf,bufsiz-1))){perror("can't read");_exit(EXIT_FAILURE);}
else { buf[bufsiz-1]='\0'; buf[rlen]='\0'; }И такого?
char varbuf[16];
char *varbufp=varbuf;
unsigned char vari=0;
for(char *bufp=*buf;*bufp!='\0';bufp++) {
if (*bufp==' '||*bufp=='\n') {
if (varbufp==varbuf) continue;
else {
*varbufp='\0';
var[vari++]=atoi(varbuf);
varbufp=varbuf;
continue;
}
}
}
*varbufp++=*bufp;
последняя } в конце, промахнулся, пока копировал
там ещё *varbufp='\0'; в самом конце, я не знаю, зачем
А вдрух!
Вспоминается анекдот времен ассемблера
"- Зачем программист пишет два jmp подряд?
-- А вдруг первый не сработает!"
Ээээ, анекдот до сих пор жив. В VS2019 как минимум, если выключить оптимизацию.
Какой пых?
Suid только на бинарных файлах обрабатывается.
Речь не о suid-битах.
Толсто.
Этот код из BSD, т.ч. мимо.
Я не зря добавил про "украденный и заброшенный". Напоминаю, что традиции красть чужой труд и перебивать цопирайты идут от батьки-бородатьки, стыревшего емакс у Гослинга.
Ага, а я добавлю, что Гослинг сам предоставил неограниченные права на свой код. И в первых версиях GNU Emacs была использована лишь некоторая часть из того кода, которая в скором времени была полностью переписана.
Это полная брехня, не вводи людей в заблуждение. Есть показания самого Гослинга и группы людей, которые открывали и сравнивали код. Там "не некоторая часть", а _построчно весь_ код с перебитым копирайтом. Буквально. Судиться с ним не стали только потому, что в целом Гослингу было пофиг и общаться со странным челом просто никто не хотел. Всё очень просто.
А по-моему, это вы вводите людей в заблуждение. Конечно Гослинг не хотел судиться со Столманом, судиться хотели UniPress, которым Гослинг полностью передал права на свой продукт в 1983 году. И поэтому уже в 1985 году весь код, взятый из гослинг емакса, был из гну емакса удалён. Если кому интересно, вот репка с сорцами старых версий гну емакса и гослинг емакса:
https://github.com/larsbrinkhoff/emacs-history
Читай первоисточники, а не спекуляции самих гнутых: https://archive.computerhistory.org/resources/access/text/20...Финт ушами не пройдёт, не было кода, "взятого из гослинг емакса". Был гослинг емакс, который Столлман выдавал за свой. Если тебе хочется заниматься подменой понятий "не спëр, а позаимствовал и не 100%, а 99%" - продолжай. Вот только люди всё видят. Это называется спëр и выдал за свой. Столлман написал 0 строчек кода в изначальной версии гну емакс.
С удовольствием почитаю. Хотя первоисточником я бы это не назвал.
На 100% "украсть" Gosling Emacs Столман не мог хотя бы потому что речь шла только о сишной части кода. Скриптовая часть гну емакса (elisp) очевидно отличается от гослинговской (mocklisp).
Мог и украл. Эту версию начали распространять IBM и DEC, из-за чего Unipress подали на них в суд, выиграли и отсудили бабла. То есть это слова не Гослинга, а суда США. Суда двух чуваков из Unipress против мегакорпораций, который постановил, что код начисто спëрт. И комиссии, которая подтвердила, что спëрт line by line.С самим Ричардом судиться не стали, потому что он был бездомным без денег и вонял (это не оскорбление, это слова свидетелей).
Для полноты картины прилеплю сюда версию Столмана.
https://www.gnu.org/philosophy/stallman-kth.en.html
В принципе версии Гослинга она не противоречит. Столман пишет что исходный код гослинг-емакса ему передал его друг, работавший над ним вместе с сами Гослингом и получившим от него добро на распространение. В конечном итоге гослинг-емакс Столману не понравился (в основном потому что использовал пародию на лисп, вместо полноценного лиспа) + начались разборки с unipress, и поэтому он начал его активно переписывать.
Распространять никто не запрещал. Но копирайты перебивать было наглостью.Код ему понравился, поэтому он его и взял. А свою лисп-машину он внедрял уже позже.
А поскольку код имакса ему с нуля писать не пришлось, то и отрефакторил он его с внедрением своего лиспа примерно за одну неделю (с его слов).Столлман был спецом в области чего-то взять готовое (в том числе с других платформ) и отрефакторить. Этим и объясняется его феноменальная скорость делать то, на что у других спецов (настоящих разработчиков) уходили месяцы разработки.
О, напомнило не столь давнюю историю (2007)
undeadly.org/cgi?action=article&sid=20070829001634
где ГНУ тик? просто удалил все тексты BSD лицензии и сказал "с этого момента код под gpl"
А потом еще в комментах огрызался.
Ну поменять лицензию на GPL он конечно имел право, хотя тесксты bsd лицензии при этом тоже нужно было оставить
софт от гну давно пора закапывать.
В нём ошибок не больше и не меньше, чем в других проектах.
Уровень качества ниже, уровень поддержки ниже. Не надо релятивизм "не всё так однозначно" включать. Все всё видят.
А прям такой искперд качества, что твоё личное заключение решающее.
Решающее заключение в таких вот новостях и в целом в векторе развития гну утилит. Ну и в коде, открой посмотри)
на опеннете кто угодно может предложить новость, так что не аргумент )
да дело тут даже не в ошибках, тут в архитектуре проблема. Зачем строить программные системы по аналогии с реальными жизненными системами? Если в жизни существует "царь-бог", зачем он должен существовать в программных системах, всякие root-ы и прочая ересь, с разницей лишь в том, что тут можно времменно побыть "царем-богом", хотя можно и захватить эту власть :)?
Не в архитектуре проблема, не надо уводить в технику. Проблема в конкретных людях и организациях, которые проповедуют подход "сопрём чужое и бросим развивать, зато не будут пользоваться чужим". Организации называются gnu.org и fsf.org. Всё _крайне_ просто.
>Всё _крайне_ просто.Давно известно у кого нет сомнений :) Подрастай скорее мамкинхакер.
Хммм...
То есть ты хочешь контупер и его ОЗЪ построенные не на принципе вертикальной иерархии, а на принципе анархии - без иерархии вообще?
Мысль интересная, но хрен ты такое сделаешь :) И можешь считать себя небинарным хоть до операции по удалению\пришиванию - но ты либо М либо Ж и тчк. :-р Остальное - колхоз-тюнинг :)))
Ян Лукасевич и тернарная логика, смотрят на тебя как на неуча)Но пред оратор в чем-то прав, но ИМХО путает причину и следствие.
Просто эти системын наслаивались друг на друга, приходилось лепить костыли (и часто "срочно-срочно").
Т.к вначале это вообще не было нужно, компы были большие и специальные лаборанты в них перфокарты пихали. А потом все пошло поехала, да еще и на обалдевающей скорости, а тут еще и интернет и удаленный лоступ.
А ломать обратную совместимость никто не хочет...
Вот так и живем))
> А ломать обратную совместимость никто не хочет...
> Вот так и живем))обратно-совместимой пытался сделать Бенц "повозку без лошадей"?
> Хммм...
> То есть ты хочешь контупер и его ОЗЪ построенные не на принципе
> вертикальной иерархии, а на принципе анархии - без иерархии вообще?Во, дошло хоть до кого-то. (аплодирую стоя)
Все ресурсы доступны всем прикладным ПО. ОС тут может быть только в роли честного распределителя ресурсов (ну как в микроядерной системе или реалтайм ядрах).
> Мысль интересная, но хрен ты такое сделаешь :)почему? много-пользовательская ли система, допустим на тех же космических аппаратах или самолетах? - нет, система называется борт-машина, одна программа одни ресурсы. А у нас что? Царь-батюшка программа в виде мнолитной ОС и рабы прикладной софт. Отсюда и вся хрень, ООМ, привилегии, и т.д. ересь архитектурная, вертикаль власти епта, философия макиавели-вей :) Раб - это образ мышления.
> И можешь считать себя небинарным хоть до операции по удалению\пришиванию - но ты либо М
> либо Ж и тчк. :-р Остальное - колхоз-тюнинг :)))Скажите такое кошке Шредингера :)
> Хммм...у вас там сетевые порты привилегированные :))))))
А почему для их использования нужен рут, а не привилегия? Почему в линуксе нет механизма привилегий по типу Андроида?
В линуксе есть. Но этот код заимствован из другой оси.
А причём тут "заимствован"? Для сетевых операций CAP_NET_ADMIN вместо гранулярного разрешения отдельно на конкретный порт, отдельно на пинги, отдельно на различные netlink-операции.
Да потому что код спëрли во времена царя гороха, неужели не понятно? Поддерживать его сил у гнутых нет.
потому что если начать на каждый отправляемый пакет проверять "а можно ли этому приложению" - эффективность такого ведра будет чудовищно низкой.ведроиду оно по барабану, поскольку его приложения и так эффективностью не блещут, и работают поверх прослойки, которая на уровне высокоуровневого (а не ядерного) апи может позволить себе проверять каждый чих.
Linux Capabilitiesman capabilities
"Starting with Linux 2.2, Linux divides the privileges
traditionally associated with superuser into distinct units,
known as capabilities, which can be independently enabled and
disabled. Capabilities are a per-thread attribute."
> Starting with Linux 2.2, Linux divides the privileges traditionally
> associated with superuser into distinct units, known as capabilitiesТаки - да! НО!
> * Copyright (c) 1985, 1993
> * The Regents of the University of California. All rights reserved.И? Думаешь хоть кто то "причёсывал" ? :-\
Зажожу на https://lists.gnu.org/archive/html/bug-inetutils/2023-07/msg... , указанный в баг-трекере Дебиана ... а домен заблокирован роскомнадзором по решению какого-то суда от 2022 года. Из-за того, что в лист навалило спама, в том числе анонса митинга в 2006 году вместе с претензии к конкретному должностному лицу. Казалось бы, закон обратной силы не имеет ...
Вообще функции setuid и сотоварищи из стандартной библиотеки реализованы неправильно. Они должны сами паниковать при неудаче - потому что типичный use case - это паниковать при неудаче. Кто хочет сам обработать ошибку - тот знает, что делает, может сам реализовать обёртку для сискола.
Вообще функции setuid и сотоварищи из стандартной библиотеки реализованы неправильно. Они должны сами паниковать при неудаче - потому что типичный use case - это паниковать при неудаче. Кто хочет сам обработать ошибку - тот тихо паникует в углу своей комнаты самостоятельно.Fixed.
>Кто хочет сам обработать ошибкуГрустно :(
Программеры СССР в наших краях сильно ценились.
А вот програмЁзы из РФ - говно, по знаниям как индусы но с гонором.
Вон обработка ошибок уже что то для Юпитера, а не для них ...
Грустно :(
Ну вон даже маститые забыли.
Но да, в целом ужасаюсь, насколько про это забывают.
>>Кто хочет сам обработать ошибку
> Грустно :(
> Программеры СССР в наших краях сильно ценились.
> А вот програмЁзы из РФ - говно, по знаниям как индусы но
> с гонором.
> Вон обработка ошибок уже что то для Юпитера, а не для них
> ...
> Грустно :(Между что и то забыли пробел, любитель красивых жестов, троеточий, обедняющих речь смайликов.
С наступающим вас, желаю подрасти.
А вообще если надо просто "паниковать" - один assert() - это же так сложно, да.
gcc -DNDEBUG для пущего быстродействияИ все ваши assert() идут в /dev/null
Так, первый пошёл.
my_assert()-то, это ж вообще rocket science. Знание, доступное только избранным.
Срочно нужен npm, простите, cpm, без него не разобраться.
Доктор! Когда я делаю ВОТ ТАК - мне больно! :~~-(
пОцЫент! А вы ... ТАК - не делайте! :-)
Да не, всё правильно, так стоит делать в релизных сборках вообще.
Другое дело, что этот ссаный ассерт надо заново редефайнить в каждом ссаном куске, поэтому проще объявить свой и не мучаться.
И вот здесь кстати да, я уже сам негодую - за аннигиляцию assert с NDEBUG придумавших это дiдов стоило бы приласкать тапкой, но уже поздно.
Ну дiды - тоже всего лишь люди ...
К тому же когда они ЭТО писали - у них ещё батон твёрдый был, и "сессия на носу" как у вас сейчас :)
Бгг моя последняя сессия на батоне была примерно 20 лет назад тому :)
Но да, я неплохо сохранился, до сих пор паспорт в ваших магазинах спрашивают на определённые виды товаров, даже несмотря на заметную седину :D
типичный - никакой неудачи просто быть не может. В обычной системе. (ну или будет правда panic)В необычной - сисколов там не один, и действительно что-то может где-то пойти не так.
Т.е. это редкий случай какой-нибудь интеграции с AD или NIS не к ночи будь помянут (когда оно пошло за дополнительными группами или что там еще может потребоваться при uid switch и где-то по дороге забуксовало).Но опять же очень странно если оно при этом вообще не поменяет uid.
> Но опять же очень странно если оно при этом вообще не поменяет uidДа ничего странного, даже в случае банального (omg) pam и просто не менее (omfg) банального юзермаппинга каким-нибудь nss-sss-samba-whatevergoes оно легко может не просто навернуться где попало, а даже и сменить uid с рута на рута _без ошибки_ - при должном радиусе изгиба рук. Это же собственно - ответ на вопрос, зачем я проверяю, что встал именно нужный мне uid.
>> Но опять же очень странно если оно при этом вообще не поменяет uid
> Да ничего странного, даже в случае банального (omg) pam и просто неpam не имеет никакого отношения к обработке setuid/setreuid
nsswitch теоретически тоже не должен бы, но скорее всего где-нибудь сбоку вызывается - надеюсь, хоть там с проверкой ошибок и вменяемым поведением.Но может и зря надеюсь, там сама эта диверсия от sun, почему-то с радостным причмокиванием всосаная Дреппером, изначально больная на всю голову.
Трудно разобратся с кашей в голове у хейтеров GNU:"Код украден из BSD, но в уязвимости виноваты GNU. Но они плохие, потому что украли код. А то что лицензия позволяет это, это не в счет, потому что воровать плохо. Но когда GNU прямо запрещает воровать, это тоже плохо. Поэтому все должны использовать MIT, которая разрешает воровать."
Перебивка копирайтов это по твоему "лицензия позволяет это" ?
А с кашей у свидетелей "всё с нуля" и хейтеров BSD ещё труднее. В BSD код уже дорабатывался много раз, а линуксоиды хрен заколотили. В BSD уже этих багов нет, но они плохие, потому что когда-то, когда линукс никому не был нужен, эти баги допустили. А линуксоиды, которые просто брали код (с лицензией, как они говорят, для проприетарщиков, а значит - линуксоиды-проприетарщики?) и не хотевшие ничего исправлять, кроме нужного для корпораций - они хорошие. А потом линуксоиды плачут о багах с BSD или Sys V в линуксах, в которых якобы всё написали с нуля и опять клянут BSD.А GPL запрещает "воровать" код всем, кроме себя любимой. Сама-то она очень любит использовать чужой труд с BSD. А вот CDDL не любит. Потому что там уже ей какие-то помехи.
Ваши линуксы взлетели за счёт портированного и переписанного кода. Плохой он или хороший вас колыхать не должно, поскольку линукс за счёт него в люди вышел.
Когда-нибудь прозреют про ваши "ein license, ein foundation, ein kartell", а закрыть от антимонопольщиков вы уже ничего не сможете, только откупиться. Просто сейчас есть где деньги брать в других областях.