Архив за месяц: Декабрь 2014

yii2: Расширения

Я начал свое знакомство с yii 2.0 около 7 месяцев назад, когда он был еще в стадии альфа. Для того, что бы разобраться с работой некоторых деталей, мне приходилось прибегать к помощи сообщества, как на форумах, так и изучением уже имеющихся на тот момент сторонних расширений. Качественные расширения yii2 не только помогают сберечь время на разработке, взяв готовый функциональный код. Они,… Читать далее »

yii2: Сортировка и фильтр gridview по связанным и вычисляемым полям

Сортировка и фильтр gridview по вычисляемым или связанным полям не является сложной задачей, но она требует понимание принципов устройства модели в Yii 2.0. Для тех, кто любит пощупать рабочий код руками, есть приложение. Ставится как и приложение Yii 2 basic. Миграция создаст нужные таблицы. Все самое интересное в models/Person.php и models/PersonSearch.php. Итак, приступим… Исходные данные Допустим, что мы имеем следующие связанные… Читать далее »

Включаем SSL на qmail-popup сервере

Сервис qmail-popup позволяет получить доступ к почтовым ящикам на основе текстового протокола. Для обеспечения защиты от элементарного прослушивания соединения, полезно активировать ssl. Для примера, возьмем debian систему с установленным qmail.

Случаи из жизни с exim

Как очистить очередь exim Иногда бывает нужно удалить все приостановленные сообщения в очереди exim. Для этого достаточно выполнить команду: exim -bpu | grep frozen | awk {‘print $3’} | xargs exim -Mrm или специальную exiqgrep : exiqgrep -z -i | xargs exim -Mrm

Консольные редакторы — это интересно

Как отключить всплывающее окно при запуске emacs Если вы хотите отключить всплывающее окно при старте emacs, нужно добавить следующие строки в файл ~/.emacs, находящийся в каталоге пользователя: ;;disable splash screen and startup message (setq inhibit-startup-message t) (setq initial-scratch-message nil)

Exim: проблема с fqdn именем хоста

В некоторых системах, при установке которых не было доступно сетевое подключение, exim4 требует для запуска длительное время. Для решения этой проблемы нужно использовать опцию exim4 DC_minimaldns. Так же, можно настроить используя: dpkg-reconfigure exim4-config

Переадресация x11 через ssh

Для начала, нужно убедиться, что ваш дистрибутив поддерживает трансляцию x11 через ssh. Чаще всего эта поддержка присутствует. Старые системы без поддержки данной функции нужно обновить или пересобрать с нужными параметрами.

Значение симлинка через readlink

Иногда бывает нужно узнать значение символической ссылки без помощи ls -l и подобных способов. Специально для такого случая существует утилита readlink. Пример работы с readlink в консоли или скрипте bash: readlink /lib64/libc.so.21

Разные кодировки файлов в linux

Для конвертации текстового файла из одной кодировки в другую, можно использовать команду recode. Она поддерживает большое число кодировок, а так же, может конвертировать в base64, конвертировать CRLF и прочие. Полный список возможностей можно получить командой: recode -l | less

Как удалить файл, начинающийся с тире

Работа с файлами, имена которых начинаются с тире, требует осторожности. Символ тире (—) часто используется в завершении команд для ссылки на stdin или stdout. И в этом нет ничего особенного, ни в части файловой системы, ни в части ядра нет ограничений на использование символа тире. Сложности могут возникнуть при попытке удалить файл, имя которого начинается с тире. Обычный прием с… Читать далее »

Найти алиасы команды в linux

Если вы хотите узнать, установлены ли в системе алиасы для какой-нибудь команды, можно использовать команду type с параметром -all, как показано в следующем примере: [root@localhost]# type -all rm rm is aliased to `rm -i’ rm is /usr/bin/rm

Правописание в консоли linux

Для включения возможности автоматического исправления ошибок в именах каталогов в консоли, необходимо использовать команду shopt: [root@localhost]# shopt -s cdspell Теперь, при ошибке в пути, она будет исправлена и открыть нужный путь: [root@localhost]# cd /usk/local [root@localhost local]#

Как записать сессию пользователя в linux

Для того, что бы записать все действия пользователя в консоли linux, можно использовать простую команду script. Пример: script session.log Все действия пользователя будут записаны в файл session.log. Команда, на самом деле, создаст новую сессию. Поэтому для прекращения записи достаточно набрать exit или нажать Ctrl-D.

Удаление файла по номеру inode

Удалять файлы можно не только по имени, но и по их inode (индексному дескриптору). Подробнее на примере. Сначала создадим файл: [root@localhost]# cat > ‘\n\n\n\n\n\n\n’ Пишем любой текст ^D (жмем Ctrl+d)

Вычисление выражений в shell

Для вычисления выражений в shell можно использовать команду expr. Её можно применять как в командной строке, так и в скриптах. Далее рассмотрим несколько примеров использования команды expr. Сложение expr 6 + 4 10

Как конвертировать unix timestamps в shell

Зачастую, для скриптов shell необходимо производить манипуляции с текущей или любой другой датой. Получить текущее значение времени в формате unix timestamp можно используя параметр %s команды date: $ date +%s 1419312368

Поиск атакующих DDoS

DDoS атаки в двадцать первом веке стали настоящим и мощным оружием в кибер-войнах. Распределенные атаки на отказ в обслуживании применяются в конкурентных войнах, как между небольшими конкурирующими компаниями, так и крупными корпорациями и даже государствами. Во время DDoS атак, полезно бывает узнать адреса атакующих для принятия мер по их блокировке.

Ограничение входа root

При нажатии Ctrl-Alt-F5, мы увидим приглашение командной строки консоли tty4. Да, именно так, номер консоли на единицу меньше номера функциональной клавиши. Для ограничения входа пользователя root в систему на нужной консоли, необходимо убрать ее из списка разрешенных, хранящегося в файле /etc/securetty:

Какие библиотеки используются приложением

Команда ldd отображает список библиотек, используемых приложением: [root@p0vidl0]# ldd /usr/bin/mkdir linux-vdso.so.1 => (0x00007fffda1d5000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f295cbb5000) libc.so.6 => /lib64/libc.so.6 (0x00007f295c7f4000) libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f295c592000) liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f295c36d000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f295c169000) /lib64/ld-linux-x86-64.so.2 (0x00007f295cde3000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f295bf4c000)