Рубрика - 'Unix'

Windows 7 RDP vs SSH Tunnel

Среда, 04.08.2010

Если вам захочется сделать ssh тунель для рдп соединений к примеру на 3390 (ну вот я всегда делаю этот порт) и вы захотите потом с помощью mstsc туда вломиться по адресу localhost:3390 или 127.0.0.1:3390. То вас ждет облом… В виде вот такой ошибочки…

Решается все просто… Порт 3390 меняем на что-то более отдаленно напоминающее рдп порт, я на 5000 поменял. И все сразу работает… Вот так заботится о нас микрософт, не лазте мол в свою сесию, может быть плохо… Напоминает «Если в гугле набрать гугл, то он сломается» (с)

Сделаем-ка репозиторий Fedora Core

Четверг, 27.05.2010

Для начала нужно не мало места… К примеру только одни апдейты пакетов занимают около 15г ну и сами пакеты еще столько же, если не больше. Я не замерял.

Итак место есть, сливаем…
wget -mc -np -l 0 http://mirror.yandex.ru/fedora/linux/updates/12/
wget -mc -np -l 0 http://mirror.yandex.ru/fedora/linux/releases/12/
-mc – сделать зеркало
-np – вверх не подниматься
-l 0 – вниз до упора

Сливать конечно целиком все смысла нет… Там еще ppc и ppc64 лежат, они я думаю вообще никому не уперлись… Поэтому добавляем не нужные нам папки вот так
–exclude-directories=fedora/linux/updates/12/i386,fedora/linux/updates/12/ppc,fedora/linux/updates/12/ppc64
То есть папочки через запитую.

Ждем какое-то время потом делаем следующее. Запускаем createrepo mirror.yandex.ru, в папке где лежит mirror.yandex.ru. Он достаточно долго читает все пакеты и создает реподату. После того как он закончит репозиторием можно пользоваться. Как пользоваться? Есть много вариантов, самые удобные вот такие.
1. Подключить эту папку по nfs и в /etc/yum.repos.d/fedora.repo прописываем

[fedora]
name=Fedora $releasever – $basearch
failovermethod=priority
baseurl=file:///mnt/nfs/fedora/linux/releases/12/Everything/$basearch/os/
enabled=1
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch

можно поправить еще /etc/yum.repos.d/fedora-updates.repo

далее yum update и процесс пошел.

2. Все тоже самое только вместо file:/// пишем http:// и поднимаем апач на папку с репозиторием со стандартными настройками, никакой дополнительной настройки там не надо.

PS: Если репозиторий поднимать не на RedHat, то нужно искать createrepo, но не факт, что получится его запустить, я поковырял его на соляре, у меня не получилось, я просто смонтировал по nfs эту папку на Федора и сделал это по nfs. Для того чтобы распаковать rpm нужна утилитка rpm2cpio. Createrepo это питоновый скрипт.

Ubuntu 10.04

Пятница, 30.04.2010

Обновился до 10.04, внешне мне кажется быстрее работает интерфейс. Пофиксили багу с компизом и флешем.. Убунту ван через прокси так и не работает, а обещали… Тему по умолчанию поменяли, не очень удобная чесно говоря, сменил сразу же… Вот как-то так…

Перезапуск звуковой системы в Ubuntu

Среда, 14.04.2010

Иногда так бывает, через несколько недель звук на убунту начинает чихать и заикаться… Чтобы полечить не перезапуская комп…

Набираем:
sudo /etc/init.d/alsa-utils restart

Если не помогает, а так бывает…

Набираем:
inot@eva:~$ sudo /etc/init.d/alsa-utils stop
inot@eva:~$ lsof | grep pcm
pulseaudi 2491 inot mem CHR 116,4 3893 /dev/snd/pcmC0D0p
pulseaudi 2491 inot 28u CHR 116,4 0t0 3893 /dev/snd/pcmC0D0p
chrome 5171 inot mem REG 8,3 27216 7116 /usr/lib/alsa-lib/libasound_module_pcm_pulse.so
npviewer. 23793 inot mem REG 8,3 22164 154090 /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so

И бахаем процессы, которых быть не должно вроде как быть. У меня это был хром.

inot@eva:~$ kill -9 5171
inot@eva:~$ sudo /etc/init.d/alsa-utils start

В принципе можно все побахать, плохо не будет =) Просто запущенные процессы со звуком нужно будет перезапустить…

Virtual Box Port Forwarding

Четверг, 08.04.2010

Нужно было прокинуть порт RDP на виртуальную машину за натом, долго мучался с iptables, оказалось все проще.. Нужно выполнить вот эти 3 команды.
Указываем протокол:
$ VBoxManage setextradata «Название Виртуалки» «VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol» TCP
Указываем порт на виртуалке:
$ VBoxManage setextradata «Название Виртуалки» «VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort» 3389
Указываем порт на сервере:
$ VBoxManage setextradata «Название Виртуалки” «VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort» 2289

Теперь любой может попасть по порту 2289, на виртуальную машину за натом.
Чтобы сбросить настройки, нужно просто не указывать значение параметра… Как-то так:
$ VBoxManage setextradata «Название Виртуалки” «VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort»

Чтобы посмотреть список уже настроенных параметров:
$ VBoxManage getextradata «Название Виртуалки” enumerate

PS: Сбросить все настройки iptables можно так.
# iptables -X
# iptables -t nat -F
# iptables -t nat -X
# iptables -t mangle -F
# iptables -t mangle -X
# iptables -P INPUT ACCEPT
# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT ACCEPT

Pidgin

Среда, 17.03.2010

Нашлась такая странная фишечка, чтобы работал русская кодировка нужно в настройках акаунта прописать кодировку. Так вот странность такая. Если прописать cp-1251, то все работает, но оффлайн сообщения приходят вопросиками и от некоторых контактов в онлайне. А вот если прописать cp1251, без тире, то все становиться хорошо… =)

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

Среда, 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 веб интерфейсом, которая сраза будет создавать проекты из под пользователя апача.