четверг, 14 августа 2008 г.

Логи, смотрите логи...

Сегодня столкнулся с проблемой, не запускается ни одна система под xen. После Долгих мучений удалось выяснить что все дело в неработающей сети. Гугл просто обнасиловал запросами, ни один вариант не помог. В отчаянии я принялся за последнюю попытку: посмотрел логи. И ошибка сразу же нашлась, причем показалась настолько простой и элементарной, что просто абзац. Оказывается система не нашла /dev/net/tun, видимо "постеснялась" подгрузить соотв. модуль. Через менее чем 5 сек. проблема была решена. Вывод который я сделал неутешителен: я слишком сильно стал полагаться на гугл, даже больше чем на здравый смысл и логи. ПОЗОР!

среда, 13 августа 2008 г.

Ничего не понимаю... Тормоза...

Вчера смотрел ergo proxy через smplayer. Был неприятно удивлен тем что проц зажирается почти на 100%. Причем это под xen. На обычном ядре я такого не замечал, и что странно mplayer работал как надо особо не сжирая ресурсы. В общем ничего не понимаю. (с)

воскресенье, 10 августа 2008 г.

Как узнать какой нужен модуль

Столкнулся с тем что свежескомпиленое ядро не видит моего жесткого диска, хотя по идее я включил в ядро его чипсет (lspci показывал nforce)


После продолжительных разборок нашел одну интересную особенность программы lspci, если её запустить с ключем -vvv то вылезет огромное количество информации примерно такого типа:


00:09.0 IDE interface: nVidia Corporation Unknown device 0550 (rev a2) (prog-if 85 [Master SecO PriO])
Subsystem: Micro-Star International Co., Ltd. Unknown device 349f
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR-
Latency: 0 (750ns min, 250ns max)
Interrupt: pin A routed to IRQ 16
Region 0: I/O ports at c480 [size=8]
Region 1: I/O ports at c400 [size=4]
Region 2: I/O ports at c080 [size=8]
Region 3: I/O ports at c000 [size=4]
Region 4: I/O ports at bc00 [size=16]
Region 5: Memory at f9ef6000 (32-bit, non-prefetchable) [size=8K]
Capabilities: [44] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [8c] SATA HBA
Kernel driver in use: ahci
Kernel modules: ahci


Естественно интересует последняя строка а именно "Kernel modules: ahci", в которой сразу видно какой модуль используется системой для правильной работы устройства. Естественно проводить такие исследования надо на ядре которое работает с вашим устройством.

суббота, 9 августа 2008 г.

Чтобы не забыть

Если появляется ошибка при сборке ядра следующего вида

scripts/mod/sumversion.c: В функции ‘get_src_version’
scripts/mod/sumversion.c:384: ошибка: ‘PATH_MAX’ undeclared (first use in this function)
scripts/mod/sumversion.c:384: ошибка: (Each undeclared identifier is reported only once
scripts/mod/sumversion.c:384: ошибка: for each function it appears in.)
scripts/mod/sumversion.c:384: предупреждение: unused variable ‘filelist’

Не расстраивайтесь, просто добавьте в scripts/mod/sumversion.c вначале следующую строку
#include
И эта проблема исчезнет.

пятница, 8 августа 2008 г.

pcmanfm опять не судьба

Решил попробовать pcmanfm в качестве файлового менеджера. Посмотрел, понравился, включили наконец выбор между single и doubleclick. Но я так и не смог заставить его копировать не сами каталоги а его символические ссылки. В итоге остался на старом добром rox file manager.

воскресенье, 8 июня 2008 г.

как подключить к postgresql executequery

Решил попробовать новый инструмент для управления БД executequery, но вот незадача не смог сразу понять как подсоединяться к базе данных.
Порядок действий которые мне помогли:
1. Установка jdbc-postgresql (в моем случае emerge jdbc-postgresql), для других дистрибутивов скорее всего названия будут аналогичными.
2. Запуск executequery
3. New Connection
4. Заполнение всех очевидных полей (по типу username и др.)
5. New Driver -> Из списка выбрать Postgresql
6. Add Library -> jdbc-postgresql.jar (в моем случае /usr/share/jdbc-postgresql/lib/jdbc-postgresql.jar )
7. Find и выбрать из списка org.postgresql.Driver
8. Save и connect
9. Наслаждаться этой прекрасной программой =)

вторник, 27 мая 2008 г.

vim + qt

Автодополнение qt функций в vim

1. ctags -R --c++-kinds=+p --fields=+iaS --extra=+q /usr/share/qt4
2. Установить плагин SuperTab

Все! теперь по нажатию <Tab> будет происхофить автодополнение. Наслаждайтесь =)


вторник, 4 марта 2008 г.

split

Скрипт разбивающий файл в стиле total commander

#!/bin/sh
#
# This script unrars to a directory specified in gdialog and
# redirects stdout to a log file.
#
# Distributed under the terms of GNU GPL version 2 or later
#
# Copyright (C) Unit_1985 <unit_dot_1985(at)gmail_dot_com>
#
# Install in your ~/Nautilus/scripts directory.
# You need to be running Nautilus 1.0.3 +
size=$(gdialog --title "size..." --inputbox "input block size (prefix k=Kb,m=Mb)" 200 350 2>&1)
split -d -a 3 -b $size $1 $1.; gdialog --separate-output --title "unrar log" --msgbox "Archive OK"

Blogged with Flock

Merge (Собираем архивы созданные total commnder)

скрипт очень прост, но ужасно полезен если необходимо собрать файлы разбитые total commander'ом

собственно скрипт

#!/bin/sh
#
# This script unrars to a directory specified in gdialog and
# redirects stdout to a log file.
#
# Distributed under the terms of GNU GPL version 2 or later
#
# Copyright (C) Unit_1985 <unit_dot_1985(at)gmail_dot_com>
#
# Install in your ~/Nautilus/scripts directory.
# You need to be running Nautilus 1.0.3 +

if echo $1|grep -q .001$ ; then
cat $(ls color=never `echo $1|grep -v crc$|sed s/001$/*/`)> `echo $1 |sed s/.001$//`; gdialog --separate-output --title "unrar log" --msgbox "Merge ok" ;

else
gdialog --separate-output --title "unrar log" --msgbox "Bad format" ;
fi


На всякий случай повторяю, чтобы его использовать нужно скопировать этот код в файл (например с помощью gedit), поставить права на выполнение (в консоли набрать chmod a+x), и положить его в каталог "~/.gnome2/nautilus-scripts/" где "~" - ваша рабочая директория.

Blogged with Flock

суббота, 1 марта 2008 г.

flock

Не совсем относиться к линуксу конечно, но все же. Недано попробовал браузер flock на движке gecko, который позиционировался как браузер полностью готовый к веб 2.0. Если честно я не поверил в эту чушь, но все же решил попробовать, благо ff меня не очень то и устраивал.
Но тут меня поджидала неприятность, в моих репозиториях не оказалось этого браузера, но ничего немного порывшись на сайте getdeb.net я нашел то что мне нужно.

При первом запуске меня спросили импортировать ли данные из ff или нет, я естественно согласился. Если честно меня поразило насколько много данных перенеслись из ff во flock , например все мои сохраненные пароли в ff были распознанны.Также меня заинтересовала стартовая страница, она представляет собой смесь поисковика, закладок на наиболее просматриваемые страницы, и ленты новостей, медиа-данные и мн. др. Это куда приятнее чем простая страница на сайт гугла =0)





Стоит отметить следующие возможности: Хранение закладок как на локальном компьютере так и на специальном сервере, ведение онлайн дневников прямо из браузера, поддержка расширений ff, автоматическое занесение поисковых машин в боковую панель одним нажатием (немного коряво но в целом правильно, суть такая при посещении сайтов где есть поисковик пояляется спецю кнопка при нажатии на которую этот поисковик будет занесен в число поисковиков с помощью которых можно искать из боково панели)




Blogged with Flock

среда, 30 января 2008 г.

unrar test

Модифицировал немного nautilus-script от Keith Conger, для того чтобы можно было проверять целостность файлов в архивах .rar. Надеюсь эта маленькая утилита будет полезна тем кто качает с файло-помоек многотомные архивы и не может понять почему не получается собрать архив воедино, или не хочет из-за этого возиться в коммандной строке.

Код:

#!/bin/sh
#
# This script unrars to a directory specified in gdialog and
# redirects stdout to a log file.
#
# Distributed under the terms of GNU GPL version 2 or later
#
# Copyright (C) Keith Conger
#
# Install in your ~/Nautilus/scripts directory.
# You need to be running Nautilus 1.0.3 +

UNRAR_PATH=/usr/bin #Path to unrar binary.

gdialog --title "passwd" --inputbox "" 2>/tmp/pass.log

$UNRAR_PATH/unrar t -p`cat /tmp/pass.log` -kb "$1" 2>>/tmp/"$1".log

if [ -s /tmp/"$1".log ]
then
gdialog --separate-output --title "unrar error log" --textbox /tmp/"$1".log 50 70 2>&1
else gdialog --separate-output --title "unrar log" --msgbox "Archive OK"
fi
rm /tmp/"$1".log /tmp/pass.log

Небольшое примечание:
1. Измените путь к винрару если он не соответсвует вашему (просмотреть путь можно набрав в консоли which unrar)
2. Скопируйте код выше в ~/.gnome2/nautilus-scripts/
3. Скрипт должен быть исполняемым

Postfix (Перевод)

Postfix это почтовый сервер (MTA) который является основным для ubuntu. Он в основном репозитории ubuntu, и это значит, что для него будут выпускаться обновления безопасности. Этио руководство объясняет как установить и настроить postfix и настроить его в качестве SMPT сервера используя безопасное соединение.

Установка

Для того чтобы установить Postfix с SMTP-AUTH и TLS (англ. Transport Layer Security — криптографический протокол, обеспечивающий защищённую передачу данных между узлами в сети Интернет) выполните следующие шаги: используя ваш любимый пакетный менеджер установите postfix из основного (main) репозитория.
Пропустите этап настройки, когда будет задан сответствующий вопрос, конфигурация будет выполнена более детальна на следующем этапе.

Конфигурация

Наберите из терминала:

dpkg-reconfigure postfix

Вставьте следующие значения (замените server1.example.com вашим доменным именем если оно у вас есть)

* Internet Site
* NONE
* server1.example.com
* server1.example.com, localhost.example.com, localhost
* No
* 127.0.0.0/8
* Yes
* 0
* +
* all

Сейчас самое время решить какой фармат mailbox вы хотите использовать. По умолчанию Postfix использует mbox для формата mailbox. Лучше вместо редактирования файла конфигурации напрямую, вы можете использовать комманду postconf для конфигурации всех postfix параметров. Параметрры конфигурации будут находиться в файде /etc/postfix/main.cf. Позже если вы захотите перенастроить особый параметр, вы можете либо выполнить комманду, либо изменить его вручную в файле.

Конфигурация Maildir в формате mailbox:

sudo postconf -e 'home_mailbox = Maildir/'

Обратите внимание: Это место для новой почты будет в /home/username/Maildir так что вы должны настроить в почтовом клиенте такой же путь.

Конфигурируем Postfix SMTP AUTH используя SASL (saslauthd):

sudo postconf -e 'smtpd_sasl_local_domain ='
sudo postconf -e 'smtpd_sasl_auth_enable = yes'
sudo postconf -e 'smtpd_sasl_security_options = noanonymous'
sudo postconf -e 'broken_sasl_auth_clients = yes'
sudo postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
sudo postconf -e 'inet_interfaces = all'

Далее откройте в текстовом редакторе /etc/postfix/sasl/smtpd.conf и добавьте следующе строки:

pwcheck_method: saslauthd
mech_list: plain login

Создадим сертификты которые будут использованы для TSL шифрования и/или certificate Authentication (доверительные отношения благодаря полученному сертификату):

openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
sudo mv smtpd.key /etc/ssl/private/
sudo mv smtpd.crt /etc/ssl/certs/
sudo mv cakey.pem /etc/ssl/private/
sudo mv cacert.pem /etc/ssl/certs/

Настроим в Postfix TLS шифрование для входящей и исходящей почты:

sudo postconf -e 'smtpd_tls_auth_only = no'
sudo postconf -e 'smtp_use_tls = yes'
sudo postconf -e 'smtpd_use_tls = yes'
sudo postconf -e 'smtp_tls_note_starttls_offer = yes'
sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/private/smtpd.key'
sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt'
sudo postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'
sudo postconf -e 'smtpd_tls_loglevel = 1'
sudo postconf -e 'smtpd_tls_received_header = yes'
sudo postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
sudo postconf -e 'tls_random_source = dev:/dev/urandom'
sudo postconf -e 'myhostname = server1.example.com'

Файл /etc/postfix/main.cf должен выглядеть примерно так:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

myhostname = server1.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = server1.example.com, localhost.example.com, localhost
relayhost =
mynetworks = 127.0.0.0/8
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject _unauth_destination
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

Перезапустите postfix демон:
sudo /etc/init.d/postfix reload

Authentication

Следующий шаг астройки postfix использование SASL для SMTP AUTH.
Сперва вы должны установить libsasl2-2 и sasl2-bin из main репозитория.

Обратите внимание: Если вы используете Ubuntu 6.06 (Dapper Drake) то название пакета libsasl2.

Мы изменим некоторые вещи чтобы все работало так как надо. Из-за того что Postfix запускается в chroot директории (директории с измененным корнем) /var/spool/postfix мы изменим пару путей для работы в chroot директории (например /var/run/saslauthd становиться /var/spool/postfix/var/run/saslauthd )

Обратите внимание: изменяя путь saslauthd другие приложения которые используюь saslauthd могут пострадать.

Для начала мы отредактируем /etc/default/saslauthd в соответствии с включенным saslauthd. Удалите # в начале START=yes и добавьте PWDIR, PARAMS, and PIDFILE


# This needs to be uncommented before saslauthd will be run automatically
START=yes

PWDIR="/var/spool/postfix/var/run/saslauthd"
PARAMS="-m ${PWDIR}"
PIDFILE="${PWDIR}/saslauthd.pid"

# You must specify the authentication mechanisms you wish to use.
# This defaults to "pam" for PAM support, but may also include
# "shadow" or "sasldb", like this:
# MECHANISMS="pam shadow"

MECHANISMS="pam"

# Other options (default: -c)
# See the saslauthd man page for information about these options.
#
# Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd"
# Note: See /usr/share/doc/sasl2-bin/README.Debian
#OPTIONS="-c"

#make sure you set the options here otherwise it ignores params above and will not work
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"


Обратите внимание: Если вы желаете, вы можете использовать "shadow" вместо "pam". Это заставит использовать MD5 хэшированые пароли и что является прекрасной защитой. Имя пользователя и пароль необходимые для аутентификации будут такими же как у пользователей вашего сервера.

Далее мы изменим с помощью dpkg /var/spool/portfix/var/run/saslauthd. Saslauthd - это init скрипт использует эти настройки для создания недостающей директории с необходимыми правами:

dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd

Возможно будут получены ошибки примерно такого содержания:
"/var/spool/postfix/var/run/saslauthd" directory does not exist.
Вы можете смело их игнорировать, потому что когда вы запустите saslauthd в следующий раз соответствующие директории будут созданны.

Наконец, запустите saslauthd:

/etc/init.d/saslauthd start

Тестирование

Что бы убедиться что SMTP-AUTH и TLS работаются правильно введите следующие комманды:

telnet localhost 25 (вместо telnet можно использовать nc localhost 25)

После того как вы установите соединение со своим почтовым сервером postfix введите:

ehlo localhost

Если вы увидите строки

250-STARTTLS
250-AUTH

значит все работает
Введите quit для возвращения в коммандную оболочку

Проблемы и решения
Удаление Postfix из chroot

Если вы столкнулись с проблемами во время запуска Postfix вы вероятно захотите удалить Postfix из chroot директории для наилучшей диагностики пробемы. Для этого вы должны будете изменить следующие строки:

smtp inet n - - - - smtpd

и изменить на следующие

smtp inet n - n - - smtpd

Затем перезапустите postfix:

sudo /etc/init.d/postfix restart

Изменение saslauthd
Если вы не хотите запускать Postfix в chroot директории, или вам нравиться не использовать chroot, вы возможно захотите вернуть saslauthd назад к изначальной конфигурации.

Сперва отредактируйте /etc/default/saslauthd и закоментируйте следующие строки:

#PWDIR="/var/spool/postfix/var/run/saslauthd"
#PARAMS="-m ${PWDIR}"
#PIDFILE="${PWDIR}/saslauthd.pid"

Затем "верните" saslauthd dpkg в свое изначальное месторасположение:

dpkg-statoverride --force --update --add root sasl 755 /var/run/saslauthd

И перезапустите saslauthd:

sudo /etc/init.d/saslauthd restart

Использование 587 порта для безопасной отправки

Если вы хотите использовать 587 порт для отправки SMTP вместо 25 (Многоие провайдеры блокируют 25 порт), вам нужно отредактировать /etc/postfix/master.cf соответствующую строку для 587 порта