LINUX.ORG.RU

Релиз systemd-homed - нового компонента systemd

 ,


1

1

Леннарт Поттеринг с радостью представляет вам свой новый проект под названием systemd-homed - новый компонент systemd, который призван упростить жизнь пользователей, дав им возможность легко переносить домашние каталоги. Главная фишка проекта - создание самодостаточного окружения для пользовательских данных и отделение домашних каталогов от системных настроек, что позволяет в конечном итоге получить монтируемый файл-образ с зашифрованными данными окружения, который можно быстро перенести и развернуть на любой системе.

Презентация проекта

Полное описание в PDF

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

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

У него код гвоздями прибит к ядру, о чем ты. А ты о функции глибца переживаешь.

Не рассказывать же этому заабалу, что strjoin() пишется за 10 минут и потом работает где угодно.

devzero ()
Ответ на: комментарий от zabbal
int m = 754974721, N, t[1 << 22], a, *p, i, e = 1 << 22, j, s, b, c, U;
f (d)
{
  for (s = 1 << 23; s; s /= 2, d = d * 1LL * d % m)
    if (s < N)
      for (p = t; p < t + N; p += s)
    for (i = s, c = 1; i; i--)
      b = *p + p[s], p[s] = (m + *p - p[s]) *
        1LL * c % m, *p++ = b % m, c = c * 1LL * d % m;
  for (j = 0; i < N - 1;)
    {
      for (s = N / 2; !((j ^= s) & s); s /= 2);
      if (++i < j)
    a = t[i], t[i] = t[j], t[j] = a;
    }
}
main ()
{
  *t = 2;
  U = N = 1;
  while (e /= 2)
    {
      N *= 2;
      U = U * 1LL * (m + 1) / 2 % m;
      f (362);
      for (p = t; p < t + N;)
    *p++ = (*p * 1LL ** p % m) * U % m;
      f (415027540);
      for (a = 0, p = t; p < t + N;)
    a += (6972593 & e ? 2 : 1) ** p, *p++ = a % 10, a /= 10;
    }
  while (!*--p);
  t[0]--;
  while (p >= t)
    printf ("%d", *p--);
}


Как распарсишь - приходи. Тебе же не привыкать? До встречи. Прощай.

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

Серьёзно?! Вот эта нечитабельная срань по-твоему «неговнокод»?

Теперь понимаю, почему истерички так стесняются показать свой вариант «правильного» кода - это ж срамота! :-D :-D :-D

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

Ну то, что ты можешь породить исключительно говнокод ты успешно доказал. Теперь осталось только найти программиста, недовольного кодом systemd - и можно переходить к обсуждению. Увы, таковых пока не нашлось. Либо истерички кричащие «говнокод!», при этом не умеющие программировать. Либо программисты, которые воздерживаются от идиотских заявлений. Прям-таки закономерность.

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

ты можешь породить

Чувак, это не я породил. Это породил многоуважаемый автор для IOCCC.

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

Так понятно?

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

показать как надо и привести правильный код

Да тебе уже тут уши прожужжали про asprintf - не, не слышу.

#define _GNU_SOURCE  
#include <stdio.h>
#include <stdlib.h>

int main() {
    char source[] = "my very own string";
    char *suffix = &source[7]; 
    int suffix_len =  suffix - source;

    // look
    char *result;
    asprintf(&result, "%.*s.#%s.lck", suffix_len, source, suffix);

    printf("%s", result);
    free(result);
}
my very.# own string.lck

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

Мда, ты правда считаешь что твоё «%.*s.#%s.lck» проще читать, чем явно прописанные размеры в коде systemd?

И это не считая того, что память тебе придётся освобождать вручную. Причём проверку корректности выделения ты тоже продолбал.

То есть по итогу твой говнокод сложнее читать, он менее безопасен, да ещё и больше места занимает.

Я начинаю понимать, почему критики до сих пор боялись показывать свой код - видимо опасались такого вот позорища :-D

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

да ещё и больше места занимает.

сравниваем

t = newa(char, strlen(p) + 2 + 4 + 1);
stpcpy(stpcpy(stpcpy(mempcpy(t, p, fn - p), ".#"), fn), ".lck");
asprintf(&result, "%.*s.#%s.lck", suffix - source, source, suffix);

ты правда считаешь что твоё «%.*s.#%s.lck» проще читать, чем явно прописанные размеры в коде systemd?

asprintf(&result, "%.*s%s%s%s", suffix - source, source, ".#", suffix, ".lck");

и будь счастлив. Явно указанные размеры литералов - это код смелл.

И это не считая того, что память тебе придётся освобождать вручную.

t = newa(char, strlen(p) + 2 + 4 + 1); освободит память само?

Причём проверку корректности выделения ты тоже продолбал.

шота я не заметил проверки корректности выделения в

t = newa(char, strlen(p) + 2 + 4 + 1);
stpcpy(stpcpy(stpcpy(mempcpy(t, p, fn - p), ".#"), fn), ".lck");
Сам справишься? На всякий
error_if (-1 == asprintf(&result, "%.*s.#%s.lck", suffix - source, source, suffix));

сложнее читать

Кому и кобыла невеста(с)

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

бездумно пихать в код все что блестит (в данном случае GNU-тое расширение вместо функции, входящей в POSIX) - как раз и есть одна из отличительных черт говнокодера.

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

да вообще, картина маслом: пока Поттеринг и Ко стараются не увлекаться нестандартными расширениями, эксперты с ЛОРа хреначат их во все поля с вот такими аргументами. Сколько ты там строчек кода сэкономил, одну или две? Прямо сразу видно, кто пилит серьезный проект, а кто - хелловорлды.

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

не увлекаться нестандартными расширениями

Держи, изучай:

http://man.openbsd.org/asprintf

https://www.freebsd.org/cgi/man.cgi?query=asprintf

Как соберешься портировать systemd на соляру, напишешь обертку через vsnprintf(). Ты же крутой программист, стандарты знаешь — обертку осилишь. Я думаю, asprintf() будет у тебя наименьшей проблеме при скрещивании соляры и сустемд.

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

Тебя или твоего друга Лёню POSIX вынуждает говнокодить?

Про экономию строчек - это к твоему коллеге, которому многабукав везде мерещится. Уже стопицот раз тут писали - код смелл. Непонятно? Явно указанный размер литералов (при выделении памяти, что доставляет отдельно), имена переменных ниачом, стиль func(func(func(func(a,d,e)f,g,h)j,k,l)w,q,e).

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

Явно указанные размеры литералов - это код смелл.

Нет, это облегчает понимание кода.

освободит память само?

Да. Погоди, ты серьёзно этого не понял?! То есть ты настолько плохо знаешь С?

Неудивительно, что ты так опозорился :-D :-D :-D

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

Да там мрак.

newa() - это макрос над alloca(), определённый при помощи нестандартного gcc-шного заворачивания кода в выражение: ({...}) И они еще про стандарты что-то брешут.

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

А как тебе такой перл?

        l = strlen(identifier);
        header = newa(char, l + 1 + 1 + 2 + 2 + 2 + 2 + 2);

        memcpy(header, identifier, l);
        header[l++] = '\n';
        header[l++] = '\n'; /* unit id */
        header[l++] = '0' + priority;
        header[l++] = '\n';
        header[l++] = '0' + !!level_prefix;
        header[l++] = '\n';
        header[l++] = '0';
        header[l++] = '\n';
        header[l++] = '0';
        header[l++] = '\n';
        header[l++] = '0';
        header[l++] = '\n';
devzero ()
Последнее исправление: devzero (всего исправлений: 1)
Ответ на: комментарий от devzero

newa() - это макрос над alloca(), определённый при помощи нестандартного gcc-шного заворачивания кода в выражение: ({...})

Оооо, какой знатный велосипединг. Читаю и плачу.

перл

последствия легалайза? )

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

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

Уже.

https://security-tracker.debian.org/tracker/CVE-2019-6454

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

Нет, это термины из мира свободного софта. У профессионального софта зачастую принципиально другие требования, следовать которым для софта общего назначения просто нерационально.

ага ... на линуксовых серверах совсем другой апач и пхп, не такой как на десктопе :)

рационально было бы, чтобы бестолковые тролли сидели в сортире и кричали бы «занято». Но нет - они на форуме разводят вонючую демагогию, защищая поделия поттера.

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

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

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

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

Никто не мешает - специально для леммингов сделали баттхёртиан.

ага, у нескольких местных леммингов от наличия альтернативы сюсямду сурово «бомбит» и «подгорает»

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

С какого перепугу ты вдруг решил, что большая часть пользователей - идиоты?

меньшинства фанбоев сюсямд загаживают своими ковульсиями большую часть эфира. Создаётся впечатление, что вас большинство ;)

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

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

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

anonymous ()

Вклиниваюсь в беседу про использование нестандартных расширений компилятора.

В недавней конференции связанной с Elbrus’ами, на которых используется их собственный проприетарный компилятор lcc вместо gcc, в огород systemd кинули пару камней из-за того, что они завязались на гнутые расширения.

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

Всем насрать, что говорит жизненный опыт ламера с винды. Он к миру GNU/Linux применим как к рыбе зонтик.

сходи уже в сортир, наконец. От тебя дерьмом за версту шманит.

anonymous ()

Блин, ну вот нахрена я по фану решил уютный опенок поменять на системДу :'-(
Может есть у кого опыт и по переводу дженты обратно на openrc? Пора бэкапиться и валить обратно, может безболезненно пройдет :)

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

Скатертью дорога. Всё-таки systemd, избавляющий GNU/Linux от впавших в маразм виндузятников - это величайшее благо.

товагищ, вы перепутали методички. Не забывайте, что главный пропагандосский мем - «сделаем линук удобнее виндовс и перетянем всех виндузятников. Удобство виндузятников - лучезарное направление прогрессивного развития линукс». Не палитие контору товагищ, а то лишим премии, исключим из отряда пропагандосов, отберём методичку и отправим улицу подметать.

(с) ваш потер и К

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

Никто не мешает использовать rsyslog или парсить выхлоп joutnalctl как любой тестовой файл.

это «чёрный ящик» - туда что-то ложат и что-то там держат, а пользователю отдают только то, что сочтут нужным. Завтра его станут шифровать (как уже собрались делать с хомяком), уже совсем сосвсем не увидишь собственно его реальное содержимое, а только «выхлоп» для пользователя. А после завтра начнут его содержиме слать «куда надо» под видом телеметрии. Очевидно же направление движения -> создать закрытый от пользователя контейнер, куда система могла бы что-то складывать. Два этапа - сначала контейнер бинарный. Его ещё можно «потыкать палкой». А затем шифровать контейнер для логов. Всё, уже ничем не потыкаешь. Вот же уже начали делать systemd-homed -> присваиваем всем пользователям уникальный глобальный идентификатор (аналог глобальной «учётной записи микрософ» вместо локального логина) и вместо набора конфоигов в домашнем каталоге вводим некий шифорванный файл - это, фактический, шифрованный реестр, привязанный к глобальному идентификатору. Фактически, они уже делают так, что пользоваться компьютером «линукс» можно будет только имея глобальную учётную забись, имеющую «цифровую подпись » корпораций, drm-подтверждённую. Это реальная цель. Декларируемые цели systemd-homed - тупейшая ложь. Перенести можно простым копированием, а если надо что-то зашифровать, то создаётся шифрованный контейнер при помощи truecrypt и его аналогов. Это всё не решает задачи пользователя, а только решает задачу тотального электронного контроля над пользователем.

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

сюсямд-нлп

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

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

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

Я слышал там ядро 10 лет шлангом не могут собрать из-за этого, ядро Карл.

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

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

Это не теории, это уже давно суровая реальность. Надо быть совсем слепым, чтобы этого не замечать. И посмотрите на всех этих фанбоев сюсямд - заеппала, осликасфермы, реббефорсе - 99% содержимого их постов - это переход на личности и оскорбления, а так же низкопробнейшая демагогия.

И, да, где моя зарплата?

подождите, платиновый член линуксфоундэйшен, микрософт, ещё не сделала очередной взнос.

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

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

так вы военный ... известно же, что офицер, чтобы оттрахать жену, зовёт солдата ;)

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

Нормальным людям нафиг не упало выбирать дистрибутив по тому, какой в нём менеджер сервисов.

Продолжим логический ряд -> нормальные люди не пердолятся с линуксами, а сидят на венде и макоси - им работать надо и бизнес делать, а не красноглазить ;) ведь главное же результат, а не «как».

Они непрочь подучиться, собирать себе ядра, системы, профили систем, мэйнтейнинг.

Когда псу делать нечего… Я не говорю, что это плохо, но конечная цель в чём?

Зачем вы оскорбляете Линуса и потера?

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

С теориями заговора — в соседний кабинет.

там уже нормальные сидят и просят зонд запихнуть поглубже, а то ощущения притупились ;) ... сюсямдные меньшинства они такие ;)

anonymous ()
Ответ на: облака от tomb

Re: облака

Такое крайне необходимо, чтобы отправить всех в облака - вот типа у вас есть возможность слезть с одного облака и залезть на другое. Ну и да - системды же прозрачен и вы всё сами видите и понимаете, а также в нём нет технических проблем. А собственный комп - он вам зачем? Подозрительное желание, противоречащее интересам обществакорпорастов.

Совершенно верно. Но не только корпорасты. Ещё в начале 2000-ых американские спецслужбы пытались пропихнуть через конгресс акт TIA - total information awareness - тотальная информационная осведомлённость. Тогда не получилось, но это всё внедряется по частям ... в этом же ряду и внезапное прикрытие truecrypt с «признанием канарейки». Но не верьте собственным глазам - это же «теории заговора». Это происходит, но хомячкам внушили, что такого не может быть, что это смешно и что происходящее на их глазах невозможно.

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

Чтобы что? Я о конечной цели спрашивал.

«Есть только две возможности: - вы контролируете компьютер; - компьютер контролирует вас.»

(с) Столлман

anonymous ()
Ответ на: Re: облака от anonymous

Re: облака

американские спецслужбы - это всё те же слуги «корпорастов». или наоборот? что там в сша: военная диктатура или капитализм?

anonymous ()
Ответ на: Re: облака от anonymous

Re: облака

американские спецслужбы - это всё те же слуги «корпорастов». или наоборот? что там в сша: военная диктатура или капитализм?

все нынешние спецслужбы (а не только американские) являются слугами мирового иудобанкирства.

Лет пять назад в каком-то университете Швейцарии провели исследование - моделирование устойчивости мировой экономики. Параллельно выявили кое что интересно - 60% мировой собственности принадлежит 1200 международным тесно связанным корпорациям. Из этих 1200 выдели «ядро» 300 корпорации, которым принадлежит 40% мировой собственности. Вот он, колемановский «комитет 300», строящий «новый мировой порядок» - неофашисктое государство с тотальным электронным контролем. ... и это не «теории заговора», а реальность, вычисленная компьютерным кластером

https://www.newscientist.com/article/mg21228354-500-revealed- the-capitalist-network-that-runs-the-world/

anonymous ()