Рубрика - 'Unix'

Пара полезных перловых модулей.

Среда, 10.02.2010

NetAddr::IP – Это первый. Различные операции над ип адресами. Лично мне нужно было найти входит ли ип в определенную сеть. Тут это делается очень просто….

use NetAddr::IP;

$some = NetAddr::IP::Lite->new('192.168.1.0/24'); - Сеть
$some1 = NetAddr::IP::Lite->new('192.168.1.1'); - Первый ип
$some2 = NetAddr::IP::Lite->new('192.168.2.1'); - Второй ип
print $some->contains($some1) ; - True или False. В данном случае ТРУ.
print "\n";
print $some->contains($some2) ; True или False. В данном случае ФОЛС.
print "\n";

Еще он умеет по всякому выводить ип адрес. Об этом и многом другом тут.

Mail::Box – Второй полезный модуль. Задача обработать почту в unix mail box (/var/mail/….).

use Mail::Box;
use Mail::Box::Manager;
my $mailfile="/var/mail/sms"; # файлик для работы
my $mgr = Mail::Box::Manager->new;
my $folder = $mgr->open($mailfile, type => 'Mail::Box::Mbox', access => 'rw');
foreach my $msg ($folder->messages) { # читаем подряд все сообщения.
my $subject = $msg->subject; # Тема
my $body = $msg->decoded; # Тело
my $rec = $msg->get('Received'); # Вот так вытаскивается любой произвольный заголовок.
$msg->delete; # удаляем сообщение.
}


На сам деле делать он умеет очень много. IMAP, POP3 и т.д. Смотреть тут

Bugzilla + Active Directory

Понедельник, 24.08.2009

Небольшой пост про доменную авторизацию в Багзилле. Ничего сложного, просто малоли. )

Идем в Админку, там Parameters. Находим там пункт LDAP, и заполняем следующие параметры.

LDAPserver: Имя доменного контроллера.

LDAPbinddn: user:password  (в виде CN=ldapread,OU=Users,DC=t_rex,DC=local:ldapread ) – это пользователь который будет читать из AD.

LDAPBaseDN : OU=Users,DC=t_rex,DC=local – место откуда будут брать пользователи.

LDAPuidattribute : mail – это то что будет считаться логином. Можно в общем и другое что-то выбрать, но майл имхо оптимально.

LDAPfilter:  (memberOf=CN=QA Group,OU=Users,DC=t_rex,DC=local)  -  Этим параметром можно ограничить пользователей, которые смогут попадать в систему.

Потом в меню выбираем User Authentication,  и меняем параметр user_verify_class, подняв вверх LDAP.

Вот както так… Логиниться в систему нужно под своей почтой. Пользователь появиться в системе, как только первый залогиниться и ему можно будет выдать права.

Sybase

Четверг, 23.07.2009

Пришлось столкнуться c такой замечательно базой данных. Тут я не буду расказывать как с ней работать, скорее спрошу как с ней работать? ) В sybase для создания БД надо сделать 2 вещи, создать девайс определенного размера для базы и потом собствено к этому девайсу подвесить базу. Имеем 2х админов, один админ это тот кто держит эту базу и следит за ней, класный дядька с большим дисковым массивом и второй админ к примеру я. Дядка делает девайс под базу на своем 5 терабайтном массиве в 25 гигов, ну рецепты хранить для домохозяек. Домохозяйки трудяться днями и ночами и пишут 200мегабайт рецептов. Дядька делает дамп базы и отправляет его мне. Я смотрю на дамп в 200мег и делаю девайс в 300 мег, ну с запасом и разворачиваю базу. На что получаю такое сообщение «Девайс хочу 25гиг». Ковырял я гугл и сайбейс, никаких дельных советов не нашел. Малоли кто знает. Был бы рад освободить 24.8 гигов нулей с диска ) Мне в целом пофигу, поэтому на форумы я писать не буду. Малоли кто натолкнеться.

Subversion(Linux) + Active Directory

Четверг, 23.07.2009

В добавление к статье про доменную авторизацию в линукс+вмваре попробую описать subversion.

Считаем, что доменная авторизация работает и нужно докрутить ее на сабвершн. Считаем что сабвершн уже установлен и работает.

Качаем mod_auth_pam устанавливаем эти модули их два. Добавляем их в файл httpd.conf

LoadModule auth_pam_module modules/mod_auth_pam.so
LoadModule auth_sys_group_module modules/mod_auth_sys_group.so

Также добавляем Локейшн.

<Location /svn>
         DAV svn
         # SVNAutoversioning on
         AuthzSVNAccessFile /docs/svn/svnaccess.conf
         SVNParentPath /docs/svn/repos
         AuthUserFile /dev/null
         AuthType Basic
         AuthName "SVN repository"
         AuthPAM_Enabled on
         AuthGROUP_Enabled on
         AuthPAM_FallThrough off
         AuthGROUP_FallThrough off
         Require valid-user
         AuthBasicAuthoritative off
</Location>

Основные моменты. Файл svnaccess.conf нужен для распределения доступа к веткам svn. У него простой синтаксис:


     [groups]
     group_name = user1, user2
     group_name2 = user3, user4

     [/]
     * = r
     [/]
     inot = r
     [/example]
     inot = rw
     @group_name = r

Инот пользователь, r-read, w-write. После тага [groups] декларируются группы, где через запятую идут пользователи. Потом эту группу можно использовать поставив перед ней @.

Меняем файл /etc/pam.d/httpd

#%PAM-1.0
auth sufficient /lib64/security/pam_winbind.so
account required /lib64/security/pam_winbind.so

Вот собственно вся настройка… Есть одина фишка, для разграничения прав используется файлик, что не очень удобно. Либо я чето не дочитал, либо в него нельзя вносить группы. Но группы можно вносить в локейшн.

require group DOMAIN\user

вот таким параметром. У меня пока не было надобности проверять, но я думаю что все работает. Тоесть открываем в файлике для всех rw. Но попасть туда смогут только те кто входит в группу. Тоесть не надо заходить на сервер чтобы добавить человеку доступ. Просто кидаем его в нужную группу в АД и пользуемся.

Немного подводных камней. Если доменный юзер создает проект через ssh под своим доменным акаунтом, он и создается с его правами и апач перестает получать к нему доступ. Как решать выбирать тому кто будет решать. Я вижу 3 способа.

1. Создавать проекты через суду.

2. Каждый раз выдавать права, если проекты добавляются редко.

3. Поставить какую нибудь надстройку на svn c веб интерфейсом, которая сраза будет создавать проекты из под пользователя апача.

Gimp: Цветные цветы на черно-белой фотографии.

Пятница, 10.04.2009

Ни на что не претендующая попытка написать урок. Больше для себя чем для других.

(далее…)

Броузер по умолчанию в Gnome для KDE приложений.

Среда, 25.03.2009

Вот такое длинное название для очень короткой новости. Пользуюсь IM Kopete, у него при клике на ссылку, что-то долго грузиться и ссылка не открывается, ее надо копировать и вставлять в броузер. Как это поправить.

Идем в ~/.kde/share/config находим файл kdeglobals и добавляем/меняем в нем такие строчки

[General]
BrowserApplication=firefox

Перезапускаем приложение и вуаля, ссылки пашут.

PS: firefox можно поменять на ваш любимый броузер.

Tomcat + Active Directory

Среда, 25.02.2009

Не думаю, что кому-то может такое понадобиться, но мало ли.
Итак задача сделать логин с помощью учетной записи из Active Directory в приложение работающее на Apache Tomcat.

(далее…)

Доменная Авторизация в Linux и Vmware

Понедельник, 02.02.2009

Небольшая статья, по установке доменной авторизации в линуксе. Т.к. сам этим занимался, по горячим следам так сказать.

(далее…)