LINUX.ORG.RU

Избранные сообщения macumazan

Покидайте vimrc :3

Форум — Development

Vimrc-porn тип

 

marataziat
()

Как обновлять Linux-сервер на проде?

Форум — Admin

Есть Linux-сервер на проде: Ubuntu 24.04 LTS.

На машине запущен сайт.

Люди вообще обновляют такие машины командами apt update && apt upgrade ?

Или запустили сайт, и забили на машину? И работает себе сайт.

Потому что была у меня история с обновлением: после апдейта функция сайта на JS стала время на 1 час назад возвращать – это было серьезной проблемой для сайта.

Перемещено hobbit из general

 ,

truebin
()

Iptables + cgroup path - нашел воспроизводимый баг

Форум — Admin

Нашел баг в iptables, при рестарте сервиса перестает работать iptables match его cgroup path.

Есть мнения?

Пишу сразу как shell скрипт чтоб было можно копи пастить. Скрипт исполняем на свежей Ubuntu 24.04, можно и в виртуалке.

# функция тестирования
webtest() { curl 127.0.0.1 -m1 &>/dev/null && echo WEB OK || echo WEB FAIL; }

systemctl restart nginx
iptables -F OUTPUT
# будем матчить nginx и банить ответы от него.
iptables -A OUTPUT -m cgroup --path system.slice/nginx.service -m comment --comment rule1 -j DROP
webtest
# => WEB FAIL , правильный результат
systemctl stop   nginx.service
# здесь system.slice/nginx.service исчезает из дерева cgroup..
systemctl start  nginx.service
webtest 
# => WEB OK , неправильно!!! Видимо , когда по новой создался cgroup path, то старое правило iptables перестало его матчить..

#Теперь методы исправления. Времена чудес..

#method 1.
    # Произойдет рефреш маппинга cgroup path в iptables. Необъяснимо, но работает.
    iptables -Z OUTPUT 1
    webtest
    # => WEB FAIL , правильный резльтат

#method 2
    # удалим старое правило (rule1) и добавим новое аналогичное (rule2). Произойдет рефреш маппинга cgroup path в iptables.
    iptables -D OUTPUT -m cgroup --path system.slice/nginx.service -m comment --comment rule1 -j DROP
    iptables -A OUTPUT -m cgroup --path system.slice/nginx.service -m comment --comment rule2 -j DROP
    webtest
    # => WEB FAIL , правильный результат

 , ,

Bers666
()

Ограничение прав пользователей в Sieve

Форум — Admin

Есть сервер dovecot с поднятой sieve авторизация в коте через AD он же выступает сервером авторизации для postfix Если отдельная учетка глобал которая позволяет через userglobal зайти в любой ящик под единым паролем. Сейчас любой пользователь может сам править свои фильтры в sieve и это не подходит. Задачка минимум оставить право редактировать фильтры только если в ящик зашли через userglobal Задача максимум еще дать править свои фильтры пользователям у которых есть определенный атрибут в AD или скажем он состоит в отдельной группе AD

Прошу помощи, совета или просто кинуть в меня документацией о том как сделать. Немогу найти ничего подобного.

 , ,

wer_wolf
()

Новогоднее..Итераторы для Tcl

Форум — Development

тут кто-то предлагал делиться новогодними подарками, ну так вот оно: https://chiselapp.com/user/nektomk/repository/fun/home.

выдалось время, набросал прототип итераторов в Tcl и даже слегка покрыл тестами. Пока-что это скажем так «api preview», то есть посмотреть/оценить насколько получается удобно и выразительно.

извините, из документации пока только cheats на основной странице, тесты и две «демки» в репозитарии;

# "lines of code" :-)
# iter`s concatenations demo
set loc [ fold { accum x } {
    # simple, count elements 
    incr accum
    # from other iterator
    # [] - combination sign
} 0 [] filter { x } {
    # filter elements
    set x [ string trim $x ]
    if { $x == {} || [ string index $x 0 ] == {#} } {
	# empty lines and lines started from # (comment)
	# wil drop
	return false
    }
    return true
    # from file
} <| $filename ]

Цель: чтобы удобно было писать на Tcl в функциональном стиле; В планах сделать внутри функциональную и комбинаторную оптимизацию.

в более дальних планах на следующий год: добавить операцию [] (та которая в функ. нотации точка по центру) уже непосредственно в парсер и исполнятор tcl.

 happy new year, , ,

MKuznetsov
()

Автоматический патч ебилда

Форум — General

Когда нужно пропатчить сорцы всё решается просто: кладем патч в /etc/portage/patches/<имя_пакета> и он автоматом применяется перед сборкой.

Есть ли какой-нибудь способ автоматического применения патча не к сорцам, а к ебилду?

 , ,

Chord
()

Как узнать, сколько места в свопе занимают файлы из tmpfs?

Форум — Admin

Потребление свопа программами посмотреть просто: достаточно запустить, например, smem -s swap, или своим скриптом распарсить /proc/$PID/smaps интересующих процессов и просуммировать засвопленное.

Но в моём случае smem -s swap показывает нули, и своп, по всей видимости, потребляют файлы из tmpfs (идёт расчёт и их там много). Есть ли какой-то способ получить статистику, какие файлы и по скольку занимают в свопе? Будет достаточно наводки на файлы из /proc или /sys, которые можно самому распарсить, если таковые имеются.

UPD: Пока я заметил, что у tmpfs при вытеснении файлов в своп уменьшается Used в df, так что можно отследить общую сумму. Неа, показалось

 ,

annulen
()

Создание образа docker

Форум — Admin

Добрый день! Дано: Astra Linux 1.7,

docker 1.5-2  all transitional package
docker-buildx 0.10.5astra1 amd64 Docker CLI plugin for extended build capabilities with BuildKit
docker.io 24.0.2+astra16 amd64 Linux container runtime

С помощью команд скачала и сохранила простейший образ для обучения:

docker pull hello-world
docker images
docker save hello-world > hworld.tar

Вижу, что в tar архиве расположен исполняемый файл, при запуске которого в текущей системе отображается «Hello World» Вопрос - как сделать свой собственный образ с нуля, если есть только исполняемый файл?

https://www.dmosk.ru/miniinstruktions.php?mini=docker-base-image В этой статье написано, что из репозитория ставится система. А как простейший образ без репозитория сделать?

Перемещено hobbit из general

 ,

marip68
()

Bird 2.14

Новости — Интернет
Группа Интернет

Вышла новая версия службы динамической маршрутизации bird 2.14.

Основные нововведения:

  • Добавлена подсистема MPLS
  • Поддержка BGP/MPLS VPNs (RFC 4364)
  • Возможность управления неизвестными атрибутами в протоколе BGP
  • Имеется экспериментальная поддержка агрегирования маршрутов

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

 , , ,

ne-vlezay
()

Bird и ospf export filter

Форум — Admin

Я как-то задавал вопрос про фильтр в Bird: Bird 2.14 (комментарий). Ответ в обсуждении не родился, но недавно я на него наткнулся. В вопросе остутствовал неожиданно ключевой момент, секция interface в секции area:

filter export_OSPF {
   if net ~ 192.168.0.0/16 then reject;
}

protocol ospf v2 ospfv4 {
   ipv4 {
     export filter export_OSPF;
   }
   area 0 {
     interface "eth*" {
       type broadcast;
     }
   }
}

И вот в этой ситуации сети, поднятые на интерфейсах, попадающих под шаблон «eth*», банально игнорировались фильтром. Достаточно было указать interface "eth0", либо а-ля interface 10.0.0.0/30, где нейбор, и фильтр заработал. И вроде нигде не написано, что это важно.

В архивную тему добавиь не получилось, но так наверное тоже сойдёт, поиском искаться будет.

 ,

AS
()

Dovecot: проблема с общими почтовыми ящиками

Форум — Admin

Здравствуйте.
Настроен почтовый сервер с dovecot, в котором настроен совместный доступ к почтовым ящикам пользователей:

    namespace shared {  
        type = shared  
        separator = /  
        location = maildir:/opt/%%d/%%n:INDEX=%h/shared/%%u:INDEXPVT=%h/shared/%%u:LAYOUT=fs  
        subscriptions = yes  
        list = children  
    }  

Команда LIST (IMAP) возвращает ошибку: Mailbox doesn’t exist: shared (0.001 + 0.000 secs).
Она же, судя по всему, является причиной того, что Outlook после каждой синхронизации оставляет журнал в «Ошибках синхронизации» c сообщением о невозможности синхронизировать папку shared.
Папки внутри shared (в стиле shared/user@example.ru) синхронизируются нормально.
Как добиться от dovecot того, чтобы он возвращал информацию о родительской папке shared без ошибки, например, как о пустой?

 ,

Strateg_V
()

zram — lz4, lzo или zstd?

Форум — General

Тем, кто использует zram. Какой алгоритм компрессии используете? И какой у вас выхлоп zramctl?

$ zramctl 
NAME       ALGORITHM DISKSIZE   DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram1 lzo-rle     590,7M 288,6M 51,7M 54,4M       2 [SWAP]
/dev/zram0 lzo-rle     590,7M 287,8M 51,7M 54,3M       2 [SWAP]

 , , ,

greenman
()

Как обрабатывать события ACPI?

Форум — Admin

На машине у меня две аудиокарты:

2b:00.1 Audio device: NVIDIA Corporation TU116 High Definition Audio Controller (rev a1)
	Subsystem: Gigabyte Technology Co., Ltd TU116 High Definition Audio Controller
2d:00.4 Audio device: Advanced Micro Devices, Inc. [AMD] Starship/Matisse HD Audio Controller
	Subsystem: Micro-Star International Co., Ltd. [MSI] Starship/Matisse HD Audio Controller
. Фишка в том, что вывод звука на наушники происходит только через вторую, а если их вытащить и снова вставить, то пульса теряет из виду встройку. Помогает киляние пульсы и я хочу привязать это действие к событию «наушники подключены». Демон acpi работает, как там пишутся обработчики таких вещей и можно ли их написать?

 ,

LongLiveUbuntu
()

Как запустить контейнер в непривилегированном режиме?

Форум — Admin

Прочитал статью, испугался и хочу запустить от рута непривилегированный контейнер, как описано тут:
https://linuxcontainers.org/lxc/getting-started/#creating-unprivileged-contai...
Контейнер у меня уже есть, как привилегированный он запускается.

Я добавил файлы:
# cat /etc/subuid
root:1000000:65536
# cat /etc/subgid
root:1000000:65536
и строчки
# grep id /var/lib/lxc/guestos/config
lxc.idmap = u 0 100000 65536
lxc.idmap = g 0 100000 65536

сообщение об ошибке такое:
«newuidmap: uid range [0-65536) -> [100000-165536) not allowed»

# zgrep CONFIG_USER_NS /proc/config.gz
CONFIG_USER_NS=y

нашел багу:
https://bugs.gentoo.org/615298

выполнил команды
chmod 4755 /usr/bin/newuidmap
chmod 4755 /usr/bin/newgidmap

но ничего не поменялось.

journalctl -u lxc@guestos.service
после перезагрузки хоста пишет такое:

jan 20 02:08:12 hostos systemd[1]: Started Linux Container guestos.
jan 20 02:08:12 hostos lxc-start[6926]: lxc-start: guestos: conf.c: lxc_map_ids: 2999 newuidmap failed to write mapping "newuidmap: uid range [0-65536) -> [100000-165536) not allowed": newuidmap 6932 0 100000 65536
jan 20 02:08:12 hostos lxc-start[6926]: lxc-start: guestos: start.c: lxc_spawn: 1708 Failed to set up id mapping.
jan 20 02:08:12 hostos lxc-start[6926]: lxc-start: guestos: start.c: __lxc_start: 1939 Failed to spawn container "guestos"
jan 20 02:08:12 hostos lxc-start[6926]: lxc-start: guestos: conf.c: lxc_map_ids: 2999 newuidmap failed to write mapping "newuidmap: uid range [0-65536) -> [100000-165536) not allowed": newuidmap 6949 0 100000 65536 6>
jan 20 02:08:12 hostos lxc-start[6926]: lxc-start: guestos: conf.c: userns_exec_1: 4352 Error setting up {g,u}id mappings for child process "6949"
jan 20 02:08:12 hostos lxc-start[6926]: lxc-start: guestos: tools/lxc_start.c: main: 330 The container failed to start
jan 20 02:08:12 hostos lxc-start[6926]: lxc-start: guestos: tools/lxc_start.c: main: 336 Additional information can be obtained by setting the --logfile and --logpriority options
jan 20 02:08:12 hostos systemd[1]: lxc@guestos.service: Main process exited, code=exited, status=1/FAILURE
jan 20 02:08:12 hostos systemd[1]: lxc@guestos.service: Failed with result 'exit-code'.

Вопросы:
1) почему не работает?
2) что сделать, чтобы заработало?

 

Einstok_Fair
()

GNU screen в XTerm: как заставить отображаться все 256 цветов?

Форум — Desktop

Восхищен возможностями GNU screen, но никак не могу заставить в нем работать все 256 цветов (очень нужно для цветовых схем VIM'а и Mutt'а).

- xterm версии 200 собран с 256 цветами, TERM установлен в xterm-256color, с помощью строчки "XTerm*termName: xterm-256color" в .Xdefaults. Если использовать другие значения переменной TERM, то 256 цветов в описаниях terminfo уже не будет. А так:
$ xterm -v
XTerm(200)
$ infocmp|grep -i colors#
colors#256, cols#80, it#8, lines#24, ncv#32, pairs#256,
Вывод теста 256colors2.pl (лежит в тарболле с исходными кодами XTerm) тоже верен.

- screen версии 4.0.2 собран с поддержкой 256 цветов (опция configure --enable-colors256).
$ screen -v
Screen version 4.00.02 (FAU) 5-Dec-03

Теперь запускаем из под xterm'а screen и
$ infocmp|grep -i colors#
colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
$ echo $TERMCAP|grep Co
:Co#8:pa#64:AF=\E[3%dm:AB=\E[4%dm:op=\E[39;49m:AX:\

Шишъ! Причем вывод теста 256colors2.pl во-первых производится почти сразу, в отличии от первого случая, а во вторых _АНАЛОГИЧЕН_ первому случаю! Строчка в .screenrc "termcapinfo xterm-256color 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'" не помогает. Также в xterm команда echo -e "\e[1;34mstring" выводит строчку string ярко синим цветом, а эта же команда уже в screen'е, запущенном из этого xterm'а выводит эту же строчку уже темно синим цветом, что ИМХО неверное поведение.

Очень не хочется специально для XTerm делать terminfo описание терминала screen.xterm-256color, хочется разрулить все опциями screen'а termcap, terminfo и termcapinfo. Слил и перечитал весь список рассылки screen-users. Описанные там рецепты не помогли. Сам я не являюсь terminfo гиком, поэтому прошу помощи у всемогущего all. ОС естественно Gentoo GNU/Linux.

P.S. Также буду очень благодарен доброму человеку за ссылку на электронную англоязычную версию книги O'Reilly "Termcap and Terminfo". В Сети в свободном доступе не нашел. В пиринговых сетях есть, но буквально у пары человек, которых постоянно нет в онлайне. Для модераторов: это не варез, книга вышла 15 лет назад и сегодня ее уже не достать в бумажном виде в России.

gentoosiast
()

sieve-filter не видит виртуальных пользователей

Форум — Admin

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

sieve-filter -v -u postmaster@domain.tld ~/sieve/managesieve.sieve INBOX
sieve-filter(root): Fatal: Unknown user

Во всяких формах писал пользователя, и даже подсовывал конфиг, и от vmail запускал

sudo -u vmail sieve-filter -c /etc/dovecot/dovecot.conf -v -u test@domain.tld /var/vmail/sieve/dovecot.sieve INBOX
sieve-filter(vmail): Fatal: Unknown user

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

Как его заставить увидеть виртуальных пользователей?

Ubuntu 20.04, iRedMail, dovecot 2.3.7.2 (3c910f64b), база в OpenLDAP

 ,

abyss
()

Алиас на imap папку dovecot+postfix.

Форум — Admin

Добрый день. Есть imap папка public/.test, на папку подписался все Ок. Создал юзера test@domain.ru

Как отправлять письма через алиас в imap папку public.test ?

пробовал отправлять в public.test@domain.ru и public+test@domain.ru. Получаю в user unknown.

Как правильно привязать адрес и imap папку?

Нашел что делают через симлинк, но это решение выглядит криво.

 , , ,

echo1337
()

openbgpd удалить номер автономной системы из AS-PATH

Форум — Admin

Собственно, вопрос, как это можно сделать?

Ситуация:

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

На bird это делается:

define LOCAL_ASN = [ 4200220000 - 4200229999 ];

filter foo {
 bgp_path.delete(LOCAL_ASN);
}

Но, как это сделать на openbgpd, который в openbsd?

 , , ,

ne-vlezay
()

CONFIG_CPU_ISOLATION= ?

Форум — Desktop

В каких случаях полезно в условиях отдельно взятого компа без виртуалок на борту? И имеет ли смысл энейблить в ведре БЕЗ использования параметра при загрузке? Я знаю что if unsure say Y, хочу разобраться нафига оно вообще надо и тогда не быть unsure.

 

justin_case
()

Gentoo: chroot и внешние Иксы. Как из самого дна послать «запусти команду»

Форум — Desktop

Доброй ночи, господа.
Поскольку в генте пыхтон2_7 какбе стух, ну почти, вот вот начнёт разлагатцо...то..:-(
На 2_7 крутятся многие «полезные как БАД и ГМО» вещи, например скринлетс (да, я некрофил-свисто_без_предельщик). Про компыз пока что стращъно даже думать.

Собственно, вспышка давления желтой жидкости внутри пустой черепной полости привела меня к идее - cпихнуть скринлетс в chroot. Путем разгрёба тонн логов strace на предмет, чё_куда_почем_как, выяснилось, что цена вопроса 300 с чем то мегабайт. Ну ок. В принципе оно работает, не падает. НО!

Среди скринлетсов есть лаунчер. И тут возникает вопрос. Поскольку указанных команд для лаунчера в чруте нет (ясен пень, нафига тащить хромого, фокс и мате-терминал, ведь тогда туда весь рут прибежит O_O ), то как тогда передать в Иксы (elogind или dbus или что_угодно) или ..ммм...просто наружу «запусти_вот_эту_хрень». Причем, чтобы это было со всеми env, что есть снаружи. То есть как если бы лаунчер был не в чруте,а в текущей сессии иксов?

 , ,

KosmiK
()