The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Спорная ошибка в systemd, позволяющая повысить привилегии, закрыта без исправления

02.07.2017 20:51

В systemd выявлена ошибка, приводящая к выполнению сервисов с правами пользователя root, если в параметрах запуска указано имя пользователя, начинающееся с цифры. Например, если в сервисе указан "User=0day" и пользователь 0day присутствует в системе, то сервис будет запущен с идентификатором 0, т.е. с правами root. Леннарт Поттеринг отказался исправлять ошибку и закрыл уведомление с меткой "not-a-bug".

Позиция Поттеринга: В Linux исторически не разрешено использовать имена пользователей, начинающиеся с цифры, которые считаются некорректными. Например, в утилитах из состава shadow-utils применяется ограничение "[a-z_][a-z0-9_-]*[$]". Подобное ограничение принято чтобы избежать путаницы между передачей UID и имени пользователя в качестве аргументов типовых утилит, которые могут воспринять цифровую часть как цифровой идентификатор пользователя (перевести строку в число), если имя начинается с цифры. В systemd идентификатор пользователя, начинающийся с цифры, приводит к выводу в лог предупреждения, но при попытке запуска сервиса строка будет игнорирована и сервис с "User=0day" будет запущен под UID 0, если пользователь 0day присутствует в системе (если пользователя нет, то попытка выполнения завершится ошибкой). При этом расчёт делается на то, что создание некорректного пользователя, подобного "0day", не должно быть допущено другими компонентами дистрибутива.

Аргументы сторонников исправления подобного поведения: Фактически ограничение на использование цифр в именах в современных реалиях повсеместно не применяется, например, начиная с RHEL 7/CentOS 7 штатный инструментарий дистрибутива позволяет создавать и использовать пользователей, имена которых начинаются с цифры. Стандарт POSIX/IEEE Std 1003.1-2001 не накладывает ограничений по использованию цифр в именах пользователей, а в ситуациях когда допускается обработка и имени и UID требует вначале проверять наличие имени пользователя, и если оно отсутствует, воспринимать цифровой идентификатор как UID. В утилитах GNU рекомендуется явно выделять цифровые идентификаторы префиксом "+".

Кроме того, даже если systemd воспринимает имя некорректным, следует вывести ошибку, а не молча запускать сервис под другим пользователем. Некоторые рассматривают проблему как уязвимость, так как если кто-то убедит администратора хоста установить вредоносное ПО под именем пользователя, начинающегося с нуля, и настроить запуск сервиса systemd от этого пользователя, то данное ПО будет выполнено с правами root, а не того непривилегированного пользователя, под которым ожидает выполнения администратор.

  1. Главная ссылка к новости (https://ma.ttias.be/giving-per...)
  2. OpenNews: Systemd - от системы инициализации к набору блоков для построения ОС
  3. OpenNews: Добавление в systemd загрузчика для UEFI Secure Boot и другие планы на будущее
  4. OpenNews: Выполнение rm -rf / может привести к неработоспособности UEFI-прошивки ноутбука
  5. OpenNews: Леннарт Поттеринг о вражде в сообществе разработчиков СПО
  6. OpenNews: Разработчики Systemd намерены внедрить кардинально новые методы построения дистрибутивов Linux
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/46798-systemd
Ключевые слова: systemd
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (183) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, A.Stahl (ok), 21:18, 02/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +62 +/
    >Позиция Поттеринга:

    Весьма странная. Очевидно же что 0day это не 0. Очевидно, что что-то происходит не так. Нельзя выполнять что попало от имени рута при заведомо(!) некорректных входных данных. Пните его там -- он явно ещё не проснулся.

     
     
  • 2.5, Аноним (-), 21:38, 02/07/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Я так понял, он имеет ввиду то, что такое имя при корректной работе остальной системы до этого пункта дойти не сможет. Теоретически, должно что-то будет раньше чем произойти чем указанная ошибка.
     
     
  • 3.8, Аноним (-), 21:49, 02/07/2017 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Однако может иметь место банальная опечатка, когда вместо nginx кто-то укажет 0nginx. И получит совершенно непредсказуемое поведение. Ну то есть... поттеринг говорит что 0nginx эквивалентно root. Норм че.
     
     
  • 4.17, Anonplus (?), 22:35, 02/07/2017 [^] [^^] [^^^] [ответить]  
  • –9 +/
    Может, но это как с rm -rf

    Юзер может ошибиться и стереть себе нафиг ВСЁ, нужно ли страховать его от такого или нет?

    Подход "страховать" исповедуется в Windows, где с настройками по умолчанию на каждый чих нужно подтверждать действия, по мнению системы, опасные.

     
     
  • 5.32, Аноним84701 (ok), 23:52, 02/07/2017 [^] [^^] [^^^] [ответить]  
  • +29 +/
    > Может, но это как с rm -rf
    > Юзер может ошибиться и стереть себе нафиг ВСЁ, нужно ли страховать его
    > от такого или нет?

    "Опасные действия" и "действия с непонятным и неоднозначным вводом пользователя" вроде бы две большие разницы.
    Или у вас уствновлена особая, суровая версия rm, которая для  rm -f "*.x", не найдя подходящих файлов (.x), начнет удалять все (*)?

     
  • 4.158, Аноним (-), 17:35, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Однако может иметь место банальная опечатка, когда вместо nginx кто-то укажет 0nginx.

    Для это надо ещё что бы такой пользователь с опечаткой (0nginx) реально существовал в системе.

     
     
  • 5.202, RomanCh (ok), 17:58, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Например опечатка может случиться в одном месте, в системе автоматизации. А оттуда расползётся уже дальше. Да, конечно это "криворучье", т.е. человеческий фактор. И таки разумней было бы вываливаться с диагнозом "тут ошибка". Но...
     
  • 3.9, A.Stahl (ok), 21:50, 02/07/2017 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Однако произошло. Всё-таки это в масштабе одной программы можно возложить проверку входных данных на одну функцию и больше не париться по этому вопросу. А при межпрограммном взаимодействии верить никому нельзя. Даже Мюллеру. Тем более, что тут вопрос буквально пары строк кода.
     
  • 2.19, Аноним (-), 22:43, 02/07/2017 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Это ещё что, я отправлял feature request под свои задачи, разумеется указал свою версию systemd из состава дистрибутива. А feature request относился к последней версии, что называется, на будущее, о чём я явно потом сказал. Но Поттеринг закрыл запрос, аргументировав это тем, что принимаются запросы только по последним двум версиям systemd и указав на уже существующие возможности, которые мне ну никак не подходили (т. е. человек даже не вникал в суть задачи).

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

     
     
  • 3.26, Аноним (-), 23:25, 02/07/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    А в SysVinit не отправлял? Там что сказали?
     
     
  • 4.62, Аноним (-), 02:35, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +7 +/
    А в сис5 эти фичи были уже 20 лет как реализованы )))

    -- другой аноним

     
     
  • 5.122, Совсем другой аноним (?), 11:43, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    А что за фичи то?
     
     
  • 6.152, Аноним (-), 15:42, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Все возможные фичи и парочка невозможных тоже. Это же проверенный временем безошибочный универсальный идеально заточенный под инициализацию системы sysV. Там такой фигни нет!
     
     
  • 7.153, Аноним (-), 15:43, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Все возможные фичи и парочка невозможных тоже. Это же проверенный временем безошибочный
    > универсальный идеально заточенный под инициализацию системы sysV. Там такой фигни нет!

    Точнее, там любая фигня есть! Это же исконно-посконный sysV.

     
  • 7.159, Аноним (-), 17:38, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Все возможные фичи и парочка невозможных тоже. Это же проверенный временем безошибочный
    > универсальный идеально заточенный под инициализацию системы sysV. Там такой фигни нет!

    Ну это не совсем так, просто sysV бесконечно расширяемый, за счёт скриптовости своей натуры, в отличии от того же systemd где до сих пор например нельзя задать свою команду для restart сервиса :-)

     
     
  • 8.203, Alex (??), 18:48, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • –4 +/
    ExecReload не подходит ... текст свёрнут, показать
     
  • 3.92, Аноним (-), 08:49, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    И куда ты лезешь? Ты что никогда не работал с CVS, SVN, git? Ну, то-то и оно. Не лезь. И мысли у тебя наверняка глупые.
     
  • 3.157, Аноним (-), 17:22, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > systemd задала новый стандарт де факто для системы загрузки, он действительно хорошо, но когда-нибудь systemd ждёт серьёзный форк от недовольных.

    И я надеюсь форк будет от Линуса.

     
     
  • 4.182, Led (ok), 01:12, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> systemd задала новый стандарт де факто для системы загрузки, он действительно хорошо, но когда-нибудь systemd ждёт серьёзный форк от недовольных.
    > И я надеюсь форк будет от Линуса.

    Не раньше, чем:

    - Линус продаст все свои акции RedHat

    или

    - RedHat пошлёт ЛП на... в... в винду.

     
  • 4.193, Andrey Mitrofanov (?), 09:23, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>systemd ждёт серьёзный форк от недовольных.
    > И я надеюсь форк будет от Линуса.

    Пока ждёте, вас порадует https://gnu.org/s/shepherd/ Ричард.

     
  • 2.121, Noteme (?), 11:33, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Это не сон, это гордыня. И она никого никогда к хорошему не приводила.
     
  • 2.134, Аноним (-), 13:04, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    This - http://mobile.opennet.ru/openforum/vsluhforumID3/111642.html#14
     

  • 1.2, Аноним (-), 21:19, 02/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +14 +/
    Поттер сказал — нотабуг, значит нотабуг!
     
     
  • 2.66, Аноним (-), 02:53, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Чую, мемасиков нарисуют, как в Bumblebee
     

  • 1.4, anonymous (??), 21:33, 02/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    ЧСХ, таких нотабуг стало подозрительно много. И не только в systemd
     
     
  • 2.99, Аноним (-), 09:12, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > ЧСХ, таких нотабуг стало подозрительно много. И не только в systemd

    Взрослеете, однако.

     

  • 1.6, Аноним (-), 21:47, 02/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Вроде не впервой, о чём новость-то?
     
     
  • 2.7, Аноним (-), 21:48, 02/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >не впервой

    Можно  пару примеров? Я кроме ошибки в grub2 ничего больше не помню.

     
     
  • 3.22, sqrt (?), 23:01, 02/07/2017 [^] [^^] [^^^] [ответить]  
  • +14 +/
    >>не впервой
    > Можно  пару примеров? Я кроме ошибки в grub2 ничего больше не
    > помню.

    Из громких — была еще ситуация с тем, что rm -fr убивает материнку: https://github.com/systemd/systemd/issues/2402 (Поттеринг считает, что это ОК) и https://github.com/systemd/systemd/issues/5644 — удаление по маске .* удаляет и родительский каталог (Поттеринг не знал, что этого не должно происходить)

     
  • 3.86, Аноним (-), 07:37, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ты поцтеровы нотабуги смотри, а не в чужие программы
     
  • 2.25, anonymous (??), 23:18, 02/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Одно дело дыры, а другое, когда их игнорируют.
     

  • 1.12, Аноним (-), 22:00, 02/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +50 +/
    Каюсь, раньше не понимал, за что Лёню так не любят.
     
  • 1.13, Аноним (-), 22:16, 02/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +21 +/
    Любая ошибка есть ошибка, а Леня — лентяй и/или пудак.
     
     
  • 2.44, Аноним (-), 00:51, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Второе, второе. Это новый аналог Ульриха "ВашеМудачество" Дреппера, с его бессмертным "stop reopening".
     
     
  • 3.61, Аноним (-), 02:32, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Дреппер — автор глибца, а "стоп реопенинг" — от автора рпм. Это разные люди.

    А Дреппер в своё время не хотел вставлять в глибц костыли для обхода бага во флеше и в какой-то проприетарной софтине, используемой Линусом. А ещё ругался на Линуса, что в нормальных операционках данные от ядра получаются бинарным sysctl-ем, тогда как в линуксе для этого надо парсить текстовый файл в недрах /proc. Так что Дреппер был адекватным в отличие от.

     
     
  • 4.84, Какаянахренразница (ok), 07:16, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Дреппер — автор глибца, а "стоп реопенинг" — от автора рпм. Это разные люди.

    Именно Дреппер и именно в глибЦе: https://sourceware.org/bugzilla/show_bug.cgi?id=4980

     
     
  • 5.187, Аноним (-), 01:52, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Млин, действительно :(

    Спутал с этим: https://bugzilla.redhat.com/show_bug.cgi?id=119185

     

  • 1.14, Аноним (-), 22:19, 02/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    > Леннарт Поттеринг отказался исправлять ошибку и закрыл уведомление с меткой "not-a-bug".
    > начиная с RHEL 7/CentOS 7 штатный инструментарий дистрибутива позволяет создавать и использовать пользователей, имена которых начинаются с цифры.

    он же вроде в Red Hat работает, ему там еще не настучали ?

     
     
  • 2.41, Аноним (-), 00:42, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Будто вы с пульсой историю незнание? Через пару лет Лёню снимут с проекта придут тругие программам ты и все перепишут как надо.
     
     
  • 3.56, Девуан рулез (?), 01:56, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    пульсу уже переписали как надо?
     
     
  • 4.64, Аноним (-), 02:46, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Внезапно - да. Замечательно работает поверх JACK'а в качестве замены алсового dmix.
     
  • 4.65, Аноним (-), 02:51, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > пульсу уже переписали как надо?

    Вылезайте из криокамеры! Давно уже - теперь шипение еще более сочное и глубокое, как и жор проца! И даже, в 7 версии, решили что выход по SIGTERM не обязательно является критической ошибкой.

     
  • 4.106, Я. Р. Ош (?), 10:23, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > пульсу уже переписали как надо?

    с разморозкой тебя. ты отсутствовал 5 лет

     
  • 4.125, анонимшшш (?), 12:01, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Теперь нескучно шипит.
     

  • 1.15, jtad (?), 22:24, 02/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    действительно такой эффект имеется. Сделал скрипт и запустил от 0day. В итоге

    root 8746 1 0 21:17 ? 00:00:00 /bin/bash /usr/local/2.sh

    от моего имени запускается как положенно. КАК МОЖНО ЭТО НЕ СЧИТАТЬ БАГОМ??

     
     
  • 2.71, leap42 (ok), 03:32, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > root 8746 1 0 21:17 ? 00:00:00 /bin/bash /usr/local/2.sh
    > /usr/local/2.sh
    > 2.sh

    алло, это двош? тут постят несмешное!

     
  • 2.141, Аноним (-), 13:38, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Сделай тоже самое, но от "day". Пользователь не должен существовать.

    Посмотри результат. Потом задумайся.

     

  • 1.18, sqrt (?), 22:37, 02/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Я знаю, что надо сделать. Концепт многопользовательской операционной системы — это легаси UNIX'а 70-, не совместимый с новейшими принципами systemd. У каждого пользователя должен быть свой контейнер от systemd-nspawn. Это решит проблему (ну может еще пару приложений сломает, но чего не сделаешь ради прогресса).
     
     
  • 2.31, Crazy Alex (ok), 23:45, 02/07/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Собственно, это не так безумно, как кажется - по факту абсолютное большинство систем однопользовательские, а "пользователи" используются исключительно для разделения прав. А с приходом контейнеров на серверах (в которых часто вообще всё, что можно, от рута крутится - но этого "всего" в каждом контейнере мало) и разделение прав уходит на другие механизмы. Да и прочего legacy в POSIX хватает.

    Но безумия Поттеринга - и вообще, и в данном случае - это не отменяет :-)

     
  • 2.34, Аноним (-), 23:59, 02/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > У каждого пользователя должен быть свой контейнер

    Джоанна?

     
     
  • 3.35, Vkni (ok), 00:16, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Джоанна?

    VM/370

     
  • 3.39, sqrt (?), 00:41, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    на z/VM примерно так. Пользователь == виртуалка.
     
  • 2.43, Аноним (-), 00:48, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Лозунги - это хорошо, но только для лохов.

    А я например ради прогресса встроил бы в systemd тест который в "непрогрессивных дистрах" кричал бы при первом запуске: "Галактикавопасностэ!!! 0root работает как root!! Давай-ка накати обновления друг!!!"

    Но прежде чем делать такую хрень, я бы рассчитал бы 25 раз точно ли тут прогресс и стоит ли оно того.

    ps: А еще я подумал кем является человек который декларирует и воспринимает профанство в разработке systemd в качестве новейших принципов. И знаешь..я тебе из лучших побуждении искренне рекомендую молчать.

     
     
  • 3.52, Crazy Alex (ok), 01:48, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    По-моему, тут дружно не заметили в иронию в посте предлагавшего
     
  • 2.222, freehck (ok), 23:14, 21/09/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Привет из 2019го. Мы уже оценили Ваше предложение и сделали шаги в этом направлении:
    https://www.opennet.ru/opennews/art.shtml?num=51532
    (Люди в шутку придумывают безумные вещи про будущее развитие systemd, но постоянно оказывается не так уж далеки от истины)
     

  • 1.20, Michael Shigorin (ok), 22:48, 02/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    То есть о defensive programming бедный Леннарт тоже ничего не слышал?
     
     
     
    Часть нити удалена модератором

  • 3.73, ssh (ok), 03:44, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Programming? Шигорин? WHAT!?

    На полном серьёзе, разъясни суть претензий.

    Лингво утверждает, что используются обе слово-формы. https://www.lingvolive.com/ru-ru/translate/en-ru/programing

    Макмиллиан знает только о "Programming". http://www.macmillandictionary.com/dictionary/british/programming

     

  • 1.21, jtad (?), 22:49, 02/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    нечто, поттеринг пишет

    Yes, as you found out "0day" is not a valid username. I wonder which tool permitted you to create it in the first place. Note that not permitting numeric first characters is done on purpose: to avoid ambiguities between numeric UID and textual user names.

    Я создал юзера стандартной useradd в моей федоре 25. Он удивляется какой тулзой это можно сделать. Он вообще когда в последний раз в редхатовском дистре работал, наверно сидит в своих новых проектах а на этот ему наплевать. За такое поведение достоин увольнения

     
     
  • 2.103, Яйцассыром (?), 09:55, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    не только в редхетовском работает. в убунте тоже создается
     
  • 2.107, None (??), 10:29, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Интересно, он реально не знает, что /etc/passwd можно править текстовым редактором?
     
     
  • 3.160, Sw00p aka Jerom (?), 17:42, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ага тока суть в том, что нуно быть рутом чтобы создать нового "0day", а потом ещё его прописывать в сервис )
     
  • 3.179, Аноним (-), 23:44, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Он для логов бинарный формат придумал, смотреть который надо специальной утилитой. Какая уж тут правка конфигов универсальным текстовым редактором...
     
  • 2.177, vantoo (ok), 22:03, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Он вообще когда в последний раз в редхатовском дистре работал...

    Интересный вопрос, особенно учитывая то, что он работает в Red Hat.

     
  • 2.217, Димон (??), 22:39, 21/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    он просто дурачок, строящий из себя серьёзного технического специалиста. Но не очень получается. Зато Редхат компенсирует это протекторатом.
     

  • 1.24, Аноним (-), 23:06, 02/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Позиция Лёни Дэ подозрительна.  Сейчас модно косо смотреть на параноиков, везде усматривающих заговоры, но это уже ни в какие ворота.
     
     
  • 2.37, Аноним (-), 00:22, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –17 +/
    Если по ТЗ функция должна получать на вход целые числа от 1 до 100, то проверять на 0 нет смысла.

    Поттеринг прав.

    Не нравится - меняйте ТЗ.

     
     
  • 3.38, Аноним (-), 00:40, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Анон такой анон, отрой уже для себя типизацию.
     
  • 3.45, Аноним (-), 00:53, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +9 +/
    > Если по ТЗ функция должна получать на вход целые числа от 1 до 100, то проверять на 0 нет смысла.

    Верно. Но если вы вдруг использовали нечто на входе не проверив что у вас это нечто есть число от 1 до 100, то сразу надо в дворники. Notabug.

     
  • 3.46, Аноним (-), 00:59, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Ну, во-первых нет такого типа, чтобы сам по себе имел диапазон 1-100. uint8_t - это [0,256]. Во-вторых, для целых чисел недостаточной разрядности есть опасность переполнения типа. В-третьих, пётеринг отказывается делать проверку, мотивируя тем, что "вам запрещено передавать в функцию числа больше 100". То что по факту хакеры вертели его запреты на детородном органе, сабж признавать отказывается.

    Так что да, тут злостное нарушение практики defensive programming в критически важном компоненте системы, и отказ признать свою неправоту после прицельного тычка носом в получившуюся кучу.

     
     
  • 4.50, Аноним (-), 01:40, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –11 +/
    Ещё раз: есть здравый смысл (на который ты напираешь), а есть ТЗ. Если в ТЗ написано что будет, значит это БУДЕТ. Как, почему, а может всё-таки стоит - это неправильные вопросы. Если в ТЗ написано что пункт меню должен называться "Параматеры", то он ДОЛЖЕН называться "Параматеры". Это требование (ТРЕБОВАНИЕ!!!!!) и ты обязан (ОБЯЗАН) его выполнить.

    Это как описание API: не надо додумывать и переиначивать то, что написано прямым текстом.

    Напр. функция поиска подстроки в php должна вернуть "Возвращает указанную подстроку. Если подстрока не найдена, возвращается FALSE". Не может быть числа на выходе. Не может быть массива на выходе. Не может и всё тут. Но ты ведь всё равно проверишь что это не число и не массив, да?

     
     
  • 5.55, Crazy Alex (ok), 01:52, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +13 +/
    Чувак, иди учись дальше. Входные данные, за которые ты не можешь поручиться головой (то есть пришедшие откуда угодно извне) всегда проверяются. Это основа основ.

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

     
     
  • 6.75, Аноним (-), 04:40, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –9 +/
    Если проверка параметров нужна (а обычно она нужна), то делается функция-обёртка, которая только и делает что проверяет параметры и вызывает функцию-обработчик. Обёртка может выполнять кэширование, проверку прав доступа и многое другое.

    Кто будет писать обёртку тебя не касается, это не ты.

    А того, кто будет писать обёртку, не касается кем, где и как будет реализован функционал.

    Есть паттерны, которые называются Заместитель и Декоратор, но ты с ними явно не знаком. И к проектной работе ты тоже не готов.

     
  • 6.77, Аноним (-), 04:53, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –7 +/
    У царя Мидаса всё в золото превращалось, а у вас - в дерьмо. Вечно хотите запихать в функцию и проверку параметров, и функционал, и отрисовку, и кэширование.

    Подходишь, ничего не сделано. "А я тут занимался ***". Ну вот на *** ты этим занимался?????!!!!! Тебя просили? Тебе прямым текстом сказали "не надо". Ты дурак???? "Но ведь это тоже надо делать..." Надо. Но не тебе. И не так.

     
     
  • 7.78, Аноним (-), 05:16, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +9 +/
    > У царя Мидаса всё в золото превращалось, а у вас - в
    > дерьмо. Вечно хотите запихать в функцию и проверку параметров, и функционал,
    > и отрисовку, и кэширование.
    > Подходишь, ничего не сделано. "А я тут занимался ***". Ну вот на
    > *** ты этим занимался?????!!!!! Тебя просили? Тебе прямым текстом сказали "не
    > надо". Ты дурак???? "Но ведь это тоже надо делать..." Надо. Но
    > не тебе. И не так.

    Подходишь такой к Поттерингу, попросил показать инит. "А я сделал комбайн. Тут DNS-сервер, сканер QR-кодов, бинарные логи, и ещё 20 ненужных вещей"

     
  • 7.162, angra (ok), 18:10, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Подходишь, ничего не сделано. "А я тут занимался проектированием с применением десятка патернов, о которых на днях прочитал в умной книжке. Ну вот на *** ты этим занимался?????!!!!! Тебя просили? Тебе прямым текстом сказали "не надо". Ты дурак????"
     
  • 5.117, anon3000 (?), 11:06, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ничо, ничо. Начнёшь проверять все данные сразу после первого серьёзного факапа из-за некорректных данных.
     
     
  • 6.164, angra (ok), 18:16, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Не начнет, он же манагер по образу мышления. Отбрехается тем, что в ТЗ этого не было, а ТЗ согласовали, вот подписи. А то, что проверка данных ожидается по умолчанию от качественного кода, его не колышет, он без понятия об этих умолчаниях, у него бумажка с ТЗ есть.

     
  • 5.118, Аноним (-), 11:21, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >Ещё раз: есть здравый смысл (на который ты напираешь), а есть ТЗ.

    А где оно, ТЗ на системду, не подскажешь?

     
  • 4.54, Crazy Alex (ok), 01:50, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то такие типы есть - в Аде, например (хм, init на Аде - интересная мысль, в принципе). В остальном - согласен.
     
     
  • 5.59, Аноним (-), 02:20, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Вообще-то такие типы есть - в Аде, например

    Паскальщина же, ну и заодно модула.

     
     
  • 6.173, Аноним (-), 19:33, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Модулу не знаю, а на паскалях (FP и Delphi) это делается только через аналог enum. Внутри там те же integer-ы с разрядностью как у процессора. Более того, рантайм может не отлавливать получение числа, не попадающего в разрешённый диапазон.

    То есть проверять надо.

     
     
  • 7.184, Led (ok), 01:19, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Модулу не знаю, а на паскалях (FP и Delphi) это делается только через аналог enum.

    Садись - "двойка"!

    var I:1..100;

    > Внутри там те же integer-ы с разрядностью как
    > у процессора. Более того, рантайм может не отлавливать получение числа, не
    > попадающего в разрешённый диапазон.

    А может и "отлавливать". Начиная с... врать не буду, но начиная с TurboPascal 5.0 for DOS - точно мог "отлавливать".

    > То есть проверять надо.

    Т.е. уроки прогуливать не надо.

     
  • 4.108, Аноним (-), 10:35, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >нет такого типа, чтобы сам по себе имел диапазон 1-100

    ты не умеешь в типизацию

     
  • 4.130, Аноним (-), 12:22, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    enum?
     
  • 4.215, Pilat (ok), 14:43, 14/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну, во-первых нет такого типа, чтобы сам по себе имел диапазон 1-100.
    > uint8_t - это [0,256].

    Скоро кто-то прочитает Ваш пост и поверит что это именно так. И сделает очередную чудо-приблуду, с которой Поттерингу придётся разбираться.

     
  • 3.150, dq0s4y71 (ok), 15:19, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Дело в том, что реальный мир - это не ТЗ. Его трудно изменить, и его свойства приходится учитывать. А позиция "если факты противоречат моей теории, тем хуже для фактов" инфантильная.
     
     
  • 4.186, Аноним (-), 01:47, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    В реальном мире платят за точность исполнения ТЗ. когда мы собирали один девайс в тз был уровень шума, мы смогли его снизить и чуть не нарвались на штрафы. Как сказал заказчик: не ваше собачье дело почему девайс должен шуметь. Он должен, поэтому это написано в тз. Пришлось вставлять в девайс шумелку.
     
     
  • 5.192, EHLO (?), 07:35, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И теперь ты ходишь в каске и улыбаешься.
     
  • 5.194, Аноним (-), 10:25, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Cool story, bro. Теперь спрошу еще раз: где ТЗ на systemd? Где в нем пункт, где прямо описано сабжевое поведение?
     
     
  • 6.195, Аноним (-), 11:17, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Там же, где ТЗ на Линукс. Мотивировочную часть Поттеринг представил. Читай пока не поймёшь его позицию, там всего 10 слов.
     
     
  • 7.196, Andrey Mitrofanov (?), 11:42, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Читай пока не поймёшь его позицию, там всего 10 слов.

    Как он растянул их на 148 блогов-постов? Активно использовал воду и знаки переносов?...

    Поможете нам отделить те 10 слов от тех-тех 148 блог-постов? Типа, мучаемся же.

     
  • 7.197, Andrey Mitrofanov (?), 11:51, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Мотивировочную часть Поттеринг представил. Читай пока
    > не поймёшь его позицию, там всего 10 слов.

    Девять?! Не десять??7

    [I]""Poettering describes systemd development as [B]"never finished, never complete, but tracking progress of technology"[/B].""[/I]  --https://en.wikipedia.org/wiki/Systemd#Design

     
  • 7.198, Аноним (-), 11:57, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Раз его нет, то какого черта ты тут тогда про ТЗ задвигаешь?
     
  • 5.208, dq0s4y71 (ok), 17:57, 05/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Я так понимаю, с вашим участием пока что было разработано не много девайсов :)

    В реальном мире как-то так: http://ekimoff.ru/download/job/1.jpg

     

  • 1.60, Аноним (-), 02:32, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +22 +/
    И... количество вопросов "зачем?" к создателям Devuan становится меньше.
     
  • 1.63, Аноним (-), 02:45, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Поттеринг всего лишь "послал" выскочку, который кто такой вообще, чтобы репортить баги? Удивительно что вообще обосновал позицию, а не закрыл страничку молча. В своё время так же "послали" Кона Коливаса, только в тот раз Ingo Molnár. "Кто ты такой вообще, пролетарий, ветеринар, чтобы учить меня как ядро писать?"
     
  • 1.67, Аноним (-), 03:14, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > man 3 strtoul

    Если исправлять баг, то тут:)

    Думаю каждый хоть раз парсил текст в числа этой функцией.
    И многие знают про этот баг не первый год.

     
     
  • 2.70, Ordu (ok), 03:31, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    strtoul тут не при чём. Поттеринг же объяснил, что имя пользователя начинающееся с цифры systemd рассматривает как ошибку и игнорирует соответствующую строчку конфига. Пишет в лог об ошибке и продолжает работать так, будто этой строчки и не было. А если user не указан, то по дефолту используется root.
     
     
  • 3.138, Аноним (-), 13:26, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Это была ирония...
     
     
  • 4.140, Ordu (ok), 13:34, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Отмазывайся теперь.
     
  • 3.219, Иван (??), 15:49, 16/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > имя пользователя начинающееся с цифры systemd рассматривает как ошибку
    > и игнорирует соответствующую строчку конфига. Пишет в лог об ошибке
    > и продолжает работать так, будто этой строчки и не было.
    > А если user не указан, то по дефолту используется root.

    Это только если пользователя с таким именем не существует. А если существует, то должен использовать его, а использует root. Хотя наверное и при несуществующем пользователе запуск происходить не должен. И наверное не происходит.

     
  • 2.135, wins proxy (?), 13:09, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    И какой же там баг?
     
     
  • 3.139, Аноним (-), 13:31, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Бага там как раз нету:)
    Функция делает то, что и должна делать.

    Она кстати вернет 0 в случаях, когда первая цифра не 0.
    Например, 'day0' или '-day'.

     
     
  • 4.176, L.P. (?), 21:39, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/

    > Она кстати вернет 0 в случаях, когда первая цифра не 0.
    > Например, 'day0' или '-day'.

    Ну вернет 0 для day0 и что? В мане отлично описано, что нужно делать в таком случае.

     
  • 2.146, Аноним84701 (ok), 14:34, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> man 3 strtoul
    > Если исправлять баг, то тут:)
    > Думаю каждый хоть раз парсил текст в числа этой функцией.
    > И многие знают про этот баг не первый год.

    Да все там есть:
    https://github.com/systemd/systemd/blob/7e867138f586a7113f43cc6d42f6ce9720489e



    int safe_atou(const char *s, unsigned *ret_u) {
            char *x = NULL;
            unsigned long l;
    ...
    errno = 0;
            l = strtoul(s, &x, 0);
            if (errno > 0)
                    return -errno;
            if (!x || x == s || *x)
                    return -EINVAL;



    Как и целая куча копипасты "safe_atoXX" с вариациями в одну-две строки -- все  в лучших традициях.

     
     
  • 3.151, dq0s4y71 (ok), 15:30, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Хм, интересно. А то, что эта функция для строки "0" выдаёт ошибку - это так задумано художником?
     
     
  • 4.155, Аноним84701 (ok), 15:59, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Хм, интересно. А то, что эта функция для строки "0" выдаёт ошибку

    Хм, а с чего вы так решили?


     
     
  • 5.174, dq0s4y71 (ok), 20:28, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    С того, что strtoul возвращает 0 как в результате ошибки, так и в результате корректного преобразования строки "0".
     
     
  • 6.175, Аноним84701 (ok), 20:38, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    code unsigned long int strtoul const char nptr, char endptr, int base c... большой текст свёрнут, показать
     
     
  • 7.209, dq0s4y71 (ok), 18:00, 05/07/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Это вы не мне, а автору кода, процитированного выше, рассказывайте.
     
     
  • 8.211, Аноним84701 (ok), 19:56, 05/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    И правда -- рассказывать вам, похоже, бесполезно http ideone com SEriLl code... текст свёрнут, показать
     
  • 6.185, Led (ok), 01:21, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > С того, что strtoul возвращает 0 как в результате ошибки, так и
    > в результате корректного преобразования строки "0".

    man errno

     
     
  • 7.210, dq0s4y71 (ok), 18:01, 05/07/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ещё один. Автору кода выше расскажите.
     

  • 1.68, ОМДЗТ (?), 03:15, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    В systemd выявлена ошибка, приводящая к выполнению сервисов с правами другого пользвователя
    У меня в системе нету пользвователей, так что не страшно.
     
     
  • 2.170, Kodir (ok), 18:52, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > У меня в системе нету пользвователей, так что не страшно.

    Вам в DOS'е хорошо! А у нас тут интыпрайз :)

     

  • 1.72, Аноним (-), 03:38, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Эпичненько. Всетаки входной контроль данных должен быть.
     
     
  • 2.83, Andrey Mitrofanov (?), 07:15, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Эпичненько. Всетаки входной контроль данных должен быть.

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

     

  • 1.76, Аноним (-), 04:52, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Всё правильно. В Linux нет багов, есть только фичи.. :)
     
     
  • 2.79, Аноним (-), 06:06, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Пожалуй, это и есть причина появления "Лёни".

    Можно сколько угодно кидаться на с-д, но ошибки, всё-таки, в консерватории. А именно, стойкое игнорирование мелочей и фидбека юзеров, которые, якобы, тупее "светлейшего разработчика". На место "светлейшего" претендует и Лёня и тысячи других гениев-основателей, которые из-за ЧСВ не признают своих косяков. Лёня - дитя системы и отлично вписывается  linux-мир

     

  • 1.80, Аноним (-), 06:15, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Лене на пенсию пора уже, по состоянию душевного здоровья. А анонимным опеннетовцам, одобряющим "not a bug" в данном случае - пора, наконец, перестать противоречить любой критике святых мощей systemd, а сначала включить мозг. Леня зарвался, а тут находятся люди, готовые любой его высер оправдать.
     
     
  • 2.136, Ordu (ok), 13:11, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –3 +/
    По состоянию душевного здоровья на пенсию по инвалидности надо отправлять 95 на... большой текст свёрнут, показать
     
     
  • 3.161, Аноним (-), 18:06, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Леня заслуживает такое коммьюнити ровно по той же самой причине, по которой лично вы заслуживаете такой опеннет.

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

     
     
  • 4.171, Ordu (ok), 19:16, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Нет, ситуации различны Я могу покинуть опеннет в любой момент Хы Можно конкре... большой текст свёрнут, показать
     
  • 3.169, Kodir (ok), 18:50, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Сознательное создание дыры, под предлогом "всё равно таких юзеров нет" - полная безалаберность, простительная школоте. Если это предлагает чел старше 30 лет, то он полный му****к.
     
     
  • 4.172, Ordu (ok), 19:20, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Сознательное создание дыры, под предлогом "всё равно таких юзеров нет" - полная
    > безалаберность, простительная школоте. Если это предлагает чел старше 30 лет, то
    > он полный му****к.

    Если возможность для рута запускать сервисы от своего имени -- это дыра, то я с вами соглашусь стопроцентов. Но я не согласен с первой частью утверждения. А раз так, то меня гложут сомнения в том, что этот баг является дырой. То есть, как я уже сказал выше, я всё же скорее склонен не соглашаться с Поттерингом по этому вопросу, но у меня нет твёрдой уверенности. В отличие от 95% местного населения, которое всегда поражено синдромом Даннинга-Крюгера по самые гланды, и всегда имеет определённое мнение по любому вопросу и всегда твёрдо уверено в своей правоте.

     

  • 1.81, Аноним (-), 06:49, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В системах, в которых Системд, уже исправили работу патча Бармина? Раньше стирало UEFI BIOS. Если нет - то и эту багофигу не исправят и подавно! Ну, будет ещё один способ получения рута :-) Это как в Windows 98: Введите логин и пароль. Ввёл. Неправильный пароль. Нажал отмена. Успешный вход!
     
     
  • 2.93, iPony (?), 08:50, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ну, будет ещё один способ получения рута

    Это типа, чтоб получить рут права надо для начала с рут правами записать конфигурацию сервиса?
    Гениальное хакерство.

     
     
  • 3.100, Anonminus (?), 09:12, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >> Ну, будет ещё один способ получения рута
    > Это типа, чтоб получить рут права надо для начала с рут правами
    > записать конфигурацию сервиса?
    > Гениальное хакерство.

    Видимо, предлагается ногами притопать к руту и попросить его добавить пользователя 0day прям как в https://xkcd.com/327/

     
  • 3.120, Аноним (-), 11:27, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >> Ну, будет ещё один способ получения рута
    > Это типа, чтоб получить рут права надо для начала с рут правами
    > записать конфигурацию сервиса?
    > Гениальное хакерство.

    Пакетируем какой-нибудь софт, который использует init-скрипты, например TeamViewer.

     
     
  • 4.142, soarin (ok), 13:46, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Пакетируем какой-нибудь софт, который использует init-скрипты, например TeamViewer.

    И? так и без этой штуки можно напакетировать туда сервис рутовый.

     

  • 1.82, Какаянахренразница (ok), 07:00, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Леннарт Поттеринг отказался исправлять ошибку и закрыл уведомление с
    > меткой "not-a-bug".

    Чё-то он меня бесит. Когда я предложил смерджить все его поделки в один пакет и затолкать ему в гузно во имя мира на земле, модеры меня потёрли. Обидно.

     
     
  • 2.87, Мое (?), 07:59, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Да, обидно. Но даже не то, что ваше сообщение потерли, а не прислушались к вашему совету.
     
  • 2.168, Kodir (ok), 18:48, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что шакал Поццеринг работает на кого-то ещё, им НУЖНЫ дыры, которые помогут спецслужбам. Не удивительно, КАК ДРУЖНО мир лину|~|с подхватил казалось бы самую бестолковую идею, противоречащую всему!
     
     
  • 3.220, Иван (??), 16:10, 16/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > КАК ДРУЖНО мир лину|~|с подхватил казалось
    > бы самую бестолковую идею, противоречащую всему!

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

     

  • 1.88, Anonminus (?), 08:24, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Акела промахнулся! Промахнулся Акела!
     
     
  • 2.149, Аноним (-), 15:17, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Шакал шакала ставит идеалом...
     

  • 1.89, Аноним (-), 08:27, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    А как должна работать
    # chown 0day anyfile.txt
     
     
  • 2.221, Иван (??), 16:22, 16/01/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > А как должна работать
    > # chown 0day anyfile.txt

    servant# ls -l tmp.txt
    -rw-r--r--  1 ivan  ivan  1821  1 янв 00:57 tmp.txt
    servant# grep 0day /etc/passwd
    servant# pw useradd 0day
    servant# grep 0day /etc/passwd
    0day:*:1003:1003:User &:/home/0day:/bin/sh
    servant# chown 0day tmp.txt
    servant# ls -l tmp.txt
    -rw-r--r--  1 0day  ivan  1821  1 янв 00:57 tmp.txt
    servant#

    Правда у меня FreeBSD.

     

  • 1.91, iPony (?), 08:46, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > ошибка закрыта без исправления

    Какой наркоман заголовок писал?
    Закрыта не ошибка, а отчет об ошибке.

     
     
  • 2.94, Anonminus (?), 08:52, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Закрыта не ошибка, а отчет об ошибке

    Закрыт не отчет об ошибке, а issue, содержащий в себе отчет об ошибке.

     
     
  • 3.96, iPony (?), 08:55, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    По английски и я могу, а по-русски слабо?
     
     
  • 4.98, Anonminus (?), 09:06, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    яПони
     

  • 1.102, номия (?), 09:50, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    если ты сделал пользователя 0day то ты конечно уже скомпрометировал всё.. можно же сразу всё под рутом делать.
     
  • 1.104, Линукс нужен не только Ли (?), 10:17, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну хоть бы под nobody запускал по умолчанию что-ли.
     
     
  • 2.143, Аноним (-), 13:57, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    А смысл? Что бы букв было больше?
    Вообще убрать этот параметр из юнит файла.
     

  • 1.105, L29Ah (ok), 10:19, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Ответ от энтузиастов openbsd: https://marc.info/?l=openbsd-tech&m=149902196520920&w=2
     
  • 1.123, Нанобот (ok), 11:58, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >В Linux исторически не разрешено использовать имена пользователей, начинающиеся с цифры, которые считаются некорректными

    да хрен с этими цифрами. когда в linux можно будет создать пользователя с именем кириллицей? а то в винде вот уже лет двадцать как можно...

     
     
  • 2.163, Аноним (-), 18:13, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Надеюсь, никогда.
     
  • 2.216, Pilat (ok), 14:46, 14/07/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > да хрен с этими цифрами. когда в linux можно будет создать пользователя
    > с именем кириллицей? а то в винде вот уже лет двадцать
    > как можно...

    И с пробелами неплохо бы, а то как-то скучно стало жить

     

  • 1.124, Аноним (-), 11:58, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    В чем бугурт? С точки зрения systemd строка User=0day неверна _синтаксически_. Строка отбрасывается, но в логе появляется отметка о косяке. User=notexists - верна синтаксически, но неверна семантически, поэтому берется во внимание, но при запуске скажет - user not found. По мне, так вроде логично всё. В любом случае косяк не уходит молча в пустоту, а в лог кидается предупреждение.
     
     
  • 2.137, Аноним (-), 13:13, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >В чем бугурт? С точки зрения systemd строка User=0day неверна _синтаксически_

    Сам спросил - сам ответил.
    По стандарту POSIX 0day - корректное имя пользователя. С чего вдруг такая запись должна быть синтаксически неверна?

     
  • 2.144, Аноним (-), 14:11, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Наверно "бугурт" в том, что Леня набросал код, даже не думая о том как он должен работать.
    Теоретически если к примеру в какой-то момент случайно удалить пользователя, то сервис запустится под рутом. В нормальной программе это может регулироваться параметром.
    Тут же пробелы в логике в работе(запуск сервисов). По умолчанию следовало не запускать сервис, если в нем есть синтаксические(или любые другие). А вот если пользователь хочет, то скажем неким параметром указывать системе запускать сервис, если информации для запуска сервиса достаточно. То есть напрочь отсутствует политика безопасности запуска сервисов.
     
     
  • 3.191, B (?), 02:44, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +/

    > Теоретически если к примеру в какой-то момент случайно удалить пользователя, то сервис
    > запустится под рутом.

    Нет, не запустится. Несуществующий пользователь != невалидный пользователь.


     

  • 1.126, Аноним (-), 12:01, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >При этом расчёт делается на то, что создание некорректного пользователя, подобного "0day", не должно быть допущено другими компонентами дистрибутива.

    ЗАТКНИТЕСЬ ВСЕ! Пость поттеринг лучше игнорирует этот баг, чем заменяет /etc/{passwd,shadow,group} на бинарную поделку прибитую к systemd

     
     
  • 2.128, Аноним (-), 12:13, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >>При этом расчёт делается на то, что создание некорректного пользователя, подобного "0day", не должно быть допущено другими компонентами дистрибутива.
    > ЗАТКНИТЕСЬ ВСЕ! Пость поттеринг лучше игнорирует этот баг, чем заменяет /etc/{passwd,shadow,group}
    > на бинарную поделку прибитую к systemd

    разве ещё не заменил?

     
  • 2.204, Аноним (-), 20:29, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ни капли не удивлюсь, если оно так в скором времени и станет.
     
     
  • 3.205, Andrey Mitrofanov (?), 20:58, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Ни капли не удивлюсь, если оно так в скором времени и станет.

    Креста на http://openwall.com/tcb/ вас нет, ироды [I]![/I]

     
     
  • 4.206, Аноним (-), 00:12, 05/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Так как бы наоборот, ничего хорошего из этого не выйдет. Просто после systemd меня вообще мало чем можно удивить.
     

  • 1.127, Нанобот (ok), 12:04, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Кроме того, даже если systemd воспринимает имя некорректным, следует вывести ошибку, а не молча запускать сервис под другим пользователем

    вот это было бы правильным решением

     
     
  • 2.145, Аноним (-), 14:15, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Правильным решением было бы не запускать сервис, если в нем(юнит файл) допущены ошибки.
     
     
  • 3.147, Andrey Mitrofanov (?), 14:39, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Правильным решением было бы не

    Так, ша! Тут лёнарт решает, что правильно.

     
  • 3.189, Аноним (-), 02:31, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Поддержу.
    К примеру, тот же nginx не запустится, если в конфиге ошибка.
     

  • 1.129, Аноним (-), 12:19, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    В языке C исторически сложилось так, что memcpy копирует данные от начала к к... большой текст свёрнут, показать
     
     
  • 2.132, Аноним (-), 12:50, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    "If developers don't force themselves into the constraints of the POSIX API, they could develop some really innovative software, like systemd shows" (C) L.P., 2011
     
  • 2.180, Led (ok), 01:05, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > исторически сложилось так

    Иди в винду, ламер.

     
  • 2.190, Аноним (-), 02:33, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    По моему, еще Кениган и Ричи в своей книжке писали, что поверение memcpy зависит от реализации.
     

  • 1.133, ыы (?), 12:53, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Поттеринг поступил совершенно верно. Описанное поведение не является ошибкой.
     
     
  • 2.148, анонанонанонанино (?), 14:58, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Скачал Fedora. Установил Fedora. Загрузилась FreeBSD. Вот так нет никаких ошибок.
     
     
  • 3.154, amonymous (?), 15:57, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Хэш-то надо было сверять...
     
     
  • 4.156, Andrey Mitrofanov (?), 16:45, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Хэш-то надо было сверять...

    Неверный хеш был по-лёнартовки проверен-и-отброшен. Есть путь.

     
  • 2.181, Led (ok), 01:06, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Описанное поведение не является ошибкой.

    Тогда это бэкдор.

     
     
  • 3.188, B (?), 02:24, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Расскажи что ли, где бекдор-то.

    По факту в юнит-файле игнорируется директива User, если указанный пользователь невалидный.

    В чем уязвимость?

     

  • 1.165, Аноним (-), 18:17, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Итак, господа, возникает вопрос!
    Все ли хорошо в openrc и стоит ли выкинуть сустемд (и пульсу заодно)?
     
     
  • 2.166, Ненужно (?), 18:25, 03/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    1. Да, все хорошо, но количество программ, зависящих от него, колеблется в зависимости от заинтересованности мейнтеров конкретного дистрибутива.
    2. Если В Вашем дистре достаточно openrc пакетов, то конечно стоит. Ну а пшшшаудио ненужно априори. На крайний случай можете выкинуть сервер и оставить libpulse в качестве плагина для альсы, если есть программы, которые зависят от сабжа и лень перекомпилять их/искать альтернативы.

    Алсо есть еще runit, но он, вроде, в глубокой разработке и еще далек от идеала. Ну и, банально, проблематично его найти вне войда

     
     
  • 3.183, Аноним (-), 01:13, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >оставить libpulse

    https://github.com/i-rinat/apulse
    >есть еще runitесть еще runit

    Этих систем инициализаций вагон и маленькая тележка. Бери любуй, подпиливай под неё свои скрипты и пользуйся. Хоть sinit, хоть uselessd, хоть самописный на баше. Просто делай как тебе удобно и всё.

     

  • 1.178, vantoo (ok), 22:06, 03/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    "Исторически сложилось...", конечно, аргумент серьезный, но POSIX все таки важнее.
     
  • 1.199, Аноним (-), 13:48, 04/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Регексп, приведённый в комментарии, матчит любое число.
    https://gist.github.com/bloerwald/a482791395114fa82636e2ab207cdb11

    То есть можно создать юзера с именем (не uid) 0, 123 или любым другим, не отличимым от uid.
    Как предполагается обрабатывать данную ситуацию ВСЕМУ софту, который не использует раздельные параметры для user и uid (а это значительная часть софта и подавляющее большинство утилит для администрирования) и какой стандарт регламентирует, что должно иметь приоритет для такого параметра?

    В качестве домашнего задания попробуйте сделать:
    useradd 0
    pkill -9 -u 0

    И уже на базе этого подумайте, кто именно и где неправ.

     
     
  • 2.200, Аноним (-), 14:18, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В качестве домашнего задания попробуйте сделать:
    > useradd 0
    > pkill -9 -u 0
    > И уже на базе этого подумайте, кто именно и где неправ.

    В качестве домашнего задания попробуйте почитать внимательно багтрекер. Подсказка:
    Невалидный пользователь отбрасывается при парсинге и сервис запускается от рута. А вот если пользватель валидный, но его нет в системе, тогда никто ничего не запускет. Классно, ага.

     
  • 2.201, Аноним (-), 15:35, 04/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ответ на твой вопрос содержится прямо в тексте новости.
     
  • 2.214, www2 (ok), 10:14, 09/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    А теперь попробуйте в качестве домашнего задания внимательнее прочитать новость и сделать вот так:
    useradd 0day
    pkill -9 -u 0day

    Убьются ли у вас процессы пользователя 0day, или процессы пользователя root, как это сделал бы systemd?

    И уже на базе этого подумайте, кто именно и где неправ. На мой взгляд всё очевидно - пользователь с именем 0day - это не пользователь с uid 0.

     

  • 1.207, northbear (??), 16:45, 05/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Вообще пользователи могут появляться в системе не только из /etc/passwd но и через сетевые сервисы типа Kerberos или YP/NIC. А там таких ограничений нет. Странно что Леннарт работая на RedHat, не рассматривает такой вариант.
    Похоже у парня крыша едет от очущения собственной крутизны.
     
     
  • 2.213, Аноним (-), 11:40, 06/07/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > не рассматривает такой вариант

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

     

  • 1.212, Аноним (-), 03:39, 06/07/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Страница автора systemd - http://0pointer.de/lennart/

    Феерично - 0pointer !

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру