Как выйти из VIM

Вчера вопрос «Как выйти из редактора Vim?», опубликованный в 2012 году, достиг рекордного количества просмотров: 1 000 000. В честь этого события на Stack Overflow провели исследование и выложили статистику, которая иллюстрирует популярную проблему.

Почему не получается выйти?

Причины обычно две: человек попадает в Vim неожиданно для себя (его туда забрасывает консоль или стороннее приложение) и / или он заходит туда настолько редко, что каждый раз забывает, как закрыть программу. Читать

Руссификация уведомлений о доставке postfix

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

Функционал сервера postfix разделен на несколько модулей, за отправку уведомлений, отвечает bounce.
Просмотреть текущее содержимое шаблонов этого демона можно командой:

postconf -b

Всего в bounce можно настроить 4 шаблона:

  1. failure_template: используется если сообщение не было доставлено получателю в течение $maximal_queue_lifetime;
  2. delay_template: используется если сообщение не было доставлено в течение $delay_warning_time часов, но $maximal_queue_lifetime не прошло;
  3. success_template: используется если сообщение было доставлено, но после $delay_warning_time часов;
  4. verify_template: вроде подтверждения о доставке, но по какому триггеру срабатывает не стал разбираться, т.к. не актуально.

Шаблоны следует перечислить в файле шаблонов, обычно это /etc/postfix/bounce.cf, и этот файл указать в конфиге постфикса директивой Читать

Про SSL, часть первая: какие бывают сертификаты

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

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

  1. сертификаты, которые подтверждают только доменное имя (Domain Validation — DV);
  2. сертификаты, которые подтверждают домен и организацию (Organization Validation — OV);
  3. сертификаты с расширенной проверкой (Extended Validation — EV).

Сертификаты первого типа, нередко выдаются бесплатно, проверяются они обычно в автоматическом режиме. Для получения такого сертификата достаточно всего лишь подтвердить, что данный домен принадлежит вам. Сделать это можно разными способами, например путем отправки письма на один из зафиксированных в rfc адресов, таких как postmaster@вашдомен.ру (webmaster, hostmaster и т.д.).

Т.е. такой сертификат подтверждает, что страница которую вы видите в браузере, действительно загружена с сайта с тем доменным именем, которое вы видите в адресной строке. (Если не понятно зачем это нужно, почитайте, что такое mitm атака).

Выглядит это вот так:

Читать

Слегка новые развлечения

По результатам первой в мире гонки беспилотных автомобилей — систему нужно допиливать, ибо все закончилось аварией. Но в которой никто не пострадал 😉 Но сам факт такого соревнования, уже радует.
Подробности тут: https://tproger.ru/news/autopilot-cars-race-crash/

Как побороть баг в newusers

Первый раз в жизни приключилась необходимость, экспортировать большое количество пользователей из одного дистрибутива, в другой. Сперва думал, как и чего наколхозить для достижения истинного дзена, но нашел утилиту newusers (нашел — громко сказано, она всегда рядом была, в пакете shadow) и возрадовался.

Прога умеет создавать пользователей руководствуясь списком в текстовом файле, где каждая строка имеет вид:

user_name:clear_text_password:number_uid:number_gid:text_comment:home_dir:user_shell

где:

  1. user_name — это имя пользователя (латиницей);
  2. clear_text_password — нешифрованный пароль;
  3. number_uid — цифровой идентификатор пользователя (должен быть больше UID_MIN и меньше UID_MAX в файле /etc/login.defs) ;
  4. number_gid — цифровой идентификатор группы (должен быть больше GID_MIN и меньше GID_MAX в файле /etc/login.defs) ;
  5. text_comment — Комментарий, или фио пользователя (можно кириллицей);
  6. home_dir — домашняя директория (скрипт создаст ее сам);
  7. user_shell — командная оболочка или например /usr/sbin/nologin, если в шелл пользователю нельзя;

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


root@server:/home/serp# newusers ./userlist.txt
*** Error in `newusers': free(): invalid next size (fast): 0x00000000012b23d0 ***
Aborted (core dumped)

Читать

8 примеров команд для hpacucli на сервере HP под Linux

hpacucli это консольное приложение для управления и мониторинга RAID массивов на HP серверах. Логика работы программы не очень очевидна, поэтому предлагаю вашему вниманию 8 самых важных заклинаний %)

  1. Во первых, есть два пути выполнить команду, в интерактивном режиме, и в режиме для скриптов, в котором все задается непосредственно в аргументах командной строки. В интерактивном режиме приглашение принимает вид «=>». Что бы вызвать интерактивный режим, нужно запустить приложение без аргументов.

    [root@10 ~]# hpacucli
    HP Array Configuration Utility CLI 9.40.12.0
    Detecting Controllers…Done.
    Type «help» for a list of supported commands.
    Type «exit» to close the console.
    => rescan

    Тот же самый эффект будет если запустить программу с аргументом:

    # hpacucli rescan

  2. Состояние логических и физических дисков

    => ctrl all show config
    Smart Array P410 in Slot 4 (sn: PACCR9SYN3JR )
    array A (SAS, Unused Space: 0 MB)
    logicaldrive 1 (558.7 GB, RAID 5, OK)
    physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 300 GB, OK)
    physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 300 GB, OK)
    physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 300 GB, OK)
    physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS, 300 GB, OK, active spare)

    SEP (Vendor ID PMCSIERA, Model SRC 8x6G) 250 (WWID: 500143800695275F)

    В данном случае, у нас RAID 5, из 3 дисков + 1 spare. Еще из полезной информации — номер слота в котором стоит рейд контроллер. В данном случае — слот 4.

Читать

Ошибка Apt BADSIG и кэширующий прокси сервер

На одном из серверов приключилась бесячая ошибка APT BADSIG. Стандартное заклинание не сработало. Перебрал вариантов кучу, в частности apt-cacher-cleanup.pl не работал по причине

Undefined subroutine &main::inet_aton called at /usr/share/apt-cacher/lib/apt-cacher.pl line 221.

Совершенно очевидно, что проблема в закешированном битом файле, что подтверждалось наличием 2 файлов в /var/lib/apt/lists/partial, причем, если их удалить, и сделать aptitude update, они снова появятся.

Простого пути сбросить кэш апт кэшера я не нашел.

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

/etc/init.d/apt-cacher stop
rm -R /var/cache/apt-cacher/*
mkdir -p /var/cache/apt-cacher/{headers,import,packages,private}
/etc/init.d/apt-cacher start

в результате чего, проблема волшебным образом решилась.

Может пригодится кому? 😉