pidgin: ssl handshake failed

Или на русском: «ssl рукопожатие не удалось». Проблема заключается в том, что в новых версиях libnss3 не принимаются самоподписные сертификаты (selfsigned). На моей kubuntu 16 пришлось даунгрейдить 4 пакета до версии 3.15.4. Только после этого всё заработало. И так, вот эти пакеты:

ii  libnss3:amd64                                   2:3.15.4-1ubuntu7
ii  libnss3-1d:amd64                                2:3.15.4-1ubuntu7
ii  libnss3-nssdb                                   2:3.15.4-1ubuntu7
ii  libnss3-tools                                   3.15.4-0ubuntu0.12.04.3

После этого перезапускаем pidgin и остальные сервисы, которые тоже ругались.

[mysql] Некоторые особенности работы и установки MEM

MEM mysql enterprice monitor. Это такая веб-админка, где можно посмотреть за работой базы mysql и понять, почему она тормозит или посмотреть другую статистику. По большому счёту это приложение на java, которое выгребает статистику из баз perfomance scheme и information scheme и предоставляют её в удобном виде. Так же, время от времени парсится и вывод show engine innodb status на предмет полезной информации.

Читать далее

[mysql] 5.7 и optimizer_switch

Для тех, кто решил обновится с 5.6 на 5.7 ждут «сюрпризы» в виде переработанного оптимизатора запросов. Что такое оптимизатор? Это «помощник», который перед каждым выполнением запросов ищет путь «наилучшего» выполнения запроса. Все есть больше 10-ка различных параметров оптимизатора, которые можно включать/выключать, тем самым меняя логику исполнения запросов. Подробнее о них можно прочесть здесь.

Читать далее

Запрет удаления файлов в Solaris

Вот такая нехитрая задача возникающая перед администраторами: писать можно, удалять нельзя и всё это ограничение применить только к конкретному пользователю. Решается она просто: через ACL. Причём нужно иметь ввиду, что бы запретить удаление, нужно явно это указать (если у пользователя отсутствуют явные запреты, то он всё равно сможет их «нарушить»).

Стандартные права выглядят так: rwxpdDaARWcCos, где буквы dD означают разрешение на удаление (d — удаление файла, D — удаление файла или папки внутри директории).

Читать далее

Создание файлов в /var/run для НЕ root’a

Предположим, вам надо запустить сервис не от root’a и при этом, создать файл (например, сокет или pid) в системной папке /var/run от этого юзера. Правильный Solaris-way следующий:

Создаём группу

# svccfg -s svc:/network/test1234 addpg method_context framework

Выставляем необходимого юзера и группу

# svccfg -s svc:/network/test1234 setprop 'method_context/user = astring: "webservd"'
# svccfg -s svc:/network/test1234 setprop 'method_context/group = astring: "webservd"'

Читать далее

Solaris и файл hosts

По умолчанию файл /etc/hosts в Solaris отсутствует. Но это совсем не означает, что он пуст! В Solaris он располагается по другому пути — /etc/inet/hosts (это можно увидеть, натравив, например, truss на nscd и он сразу покажет, какие файлы запрашивает). И так, правильный выход из ситуации — сделать симлинк /etc/hosts на файл /etc/inet/hosts. Именно так, и не иначе. В противном случае, после апдейта, могут быть конфликты или ссылка затрётся.

Быстрые диалоговые окна

1) Zenity

Zenity — утилита, которая позволяет выводить на экран диалоговые окна GTK+ из командной строки и скриптов командной оболочки. Zenity это переписанная версия программы gdialog, которая в свою очередь является адаптацией программы dialog для среды GNOME.

Официальный сайт https://help.gnome.org/users/zenity/stable/

2) Yet Another Dialog (YAD)

YAD (yet another dialog) is a tool for create graphical dialogs from shell scripts

Официальный сайт https://sourceforge.net/projects/yad-dialog/

[nginx] Лимитируем по условию

Здесь буду писать о разного рода не стандартных ограничениях и как их решать.

1) Ограничение по user-agent’y:

nginx.conf:

http {
...
   map $http_user_agent $limit_bots {
      default '';
      ~*(yandex|msnbot|yahoo) $binary_remote_addr;
   }
   limit_req_zone $limit_bots zone=bots:10m rate=40r/m;
...
}

vhost.conf: Читать далее

[mysql] Правильно выставляем sql_mode в my.cnf

Сразу замечу, что официальной документации я не нашёл ни единого упоминания  о таком поведении. А оно заключается в следующем: что бы правильно выставить значение sql_mode в my.cnf, нужно поискать, ни где ли в других стандартных конфигах не упоминается ли? В моём случае главный конфиг был в /etc/my.cnf, и базу я стартовал именно с указанием этого конфига. Но! в папке с установленным дистрибутивом mysql был ещё один my.cnf (лежал он в /opt/mysql/mysql/my.cnf, то есть $MYSQL_HOME/my.cnf) в котором и была эта строка, которая перетирала любые правки, внесённые в /etc/my.cnf касательно sql_mode. Возможно это так же влияет и на другие переменные.

После комментирования строки, и выставление нужного значения в /etc/my.cnf (мне нужно было полностью отключить его), всё заработало как надо. Правильно нужно указать так:

sql_mode=