Posts Tagged ‘ Debian

Обновление Roundcube 3.1 до версии 4.2

Както в одной из предыдущих заметок я упоминал о том что на работе использую Roundcube в качестве почтового клиента. А что? Удобно! С любой машины в сети можно посмотреть почту 🙂 Короче клиент зачетный — рекомендую. Неоспоримой позитивной особенностью также является то что проэкт очень шустро розвивается. В результате, вроде, недавно ставил стабильный релиз 3.1, а вчера зашел на офсайт проэкта и увидел что уж давно стабильным считается четвертая версия 🙂 Ну чтож …. надо обновиться!

Первое что рекомендую сделать перед обновлением — бекап рабочей проги + дамп базы. Делается очень просто (у меня прога установлена в /opt/roundcube). Сначала бэкапим базу данных:

black:~# mysqldump -p rcmail |gzip -c > rcmail_SQL-`date +%F`.gz

После этого бекапим саму прогу:

black:~# tar -cjvf roundcube_backup-`date +%F`.tar.bz2 /opt/roundcube

Дальше можно браться за обновление. В случае если чтото накосячим, всегда сможем вернуться к тому что было используя сделанные бекапы 😉 Читать полностью

Проблема с записью через NFS

Недавно столкнулся с проблемой записи на сетевой диск подмонтированный по NFS. Проблема крылась в различных UID, GID пользователей на сервере и клиенте.
Так как сервером выступал Red Hat based дистрибутив, uid-ы у него начинались с 500. Клиентом выступал Debian — тут uid начинается с 1000. Как оказалось для урегулирования этой проблемки достаточно воспользоваться такими утилитками в рутовой консоли:

usermod -u <idnum> <username>
groupmod -g <idnum> <groupname>

После того как uid/gid пользователей на сервере и клиенте стали одинаковыми, возможность полноценно читать/писать через NFS у клиента на Debian появилась.

HP LaserJet 1522nf Настройка печати и сканирования в Linux

Перефразируя древний афоризм начну так: «Небыло печали железок понакупали :)»

Скучал себе тихонько на работе, никого не трогал …. а на тебе 🙂 купили в один из офисов такую вот мега МФУ с поддержкой ethernet сети и встроенным факсом. Вот и задачка нарисовалась — заставить сие чудо работать на благо компании! По задумке высокого руководства МФУ должен быть подключен в офисе только к ethernet (тоесть и печать и сканирование принципиально нужно настроить по сети). Итак задание ясно …. пробуем выполнить 🙂

Некоторые вводные данные:

  • ip address принтера — 192.168.0.33 (прописал руками в настройках принтера)
  • дистрибутив linux — Debian Squeeze
  • пользователь в Linux для которого нужно настроить печать/сканер — myuser

Сначала скажу пару слов о настройке печати. Почему пару слов? Да потому что печать заработала с полпинка 🙂 Достаточно было перейти в админку CUPS (пишем в браузере https://localhost:631/admin) и нажать там «Найти новый принтер» У меня принтер сразу обнаружился и понажимав пару кнопочек (интуитивно понятно) был на 100% готов к печати.

А вот со сканером мудохался дольше. Изза того что я впервые настраивал сканер в Linux 🙂 Да-да … чего я только не делал, а вот сканер в линуксе подключал впервые! Итак все что я знал про сканеры в линуксе, так это то, что они настраиваются через sane и что удобным GUI для sane есть xsane. Но всеже перед тем как ставить sane решил потрепать google на предмет инфы по своему вопросу. Толкового ничего нагуглить не удалось (что меня удивило) узнал только что сканер/принтер/факс для HP1522nf принято настраивать через hplip. Ну чтож … ставим весь необходимый набор простенькой командой:

Из под root в консоли пишем:

root@ws:~# aptitude install hplip sane xsane

Дальше необходимо убедиться что в конфигах sane есть упоминание о net и hpaio. Для этого открываем текстовым редактором конфиг библиотек sane и смотрим есть ли там то что нам жизненно необходимо — net и hpaio:

root@ws:~# vim /etc/sane.d/dll.conf

Там много чего понаписывано, в моем случае был net но небыло hpaio — я добавил отдельной строчкой.

Дальше предлагаю использовать скриптик hp-setup от HP для подключение сканера и факса. Я запускал в интерактивном режиме из рутовой консоли:

root@ws:~# hp-setup -i 192.168.0.33

Там сразу же предложат поставить plugins — соглашаемся (для этого надо нажать d), без них у меня сканер не заработал, при попытке сканирования выдавал «Error during device I/O». Ну и дальше там ничего сложного, пару вопросов по поводу факса … оно мне особо ненадо, я просто жал Enter и все 🙂 Хочу также добавить,что в моем случае на машине где требовалось подключить сканер небыло интернета, поэтому пришлось схитрить. На машине с инетом качаем плагины версии аналогичной hplip (посмотреть версию hplip можно командочкой aptitude show hplip) отсюда: http://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/ В моем случае это был файлик hplip-3.10.6-plugin.run. Потом rsync-ом перенес этот файлик с плагинами на машину без инета 🙂 Можно и флешкой, если сети совсем нету …. Дальше из рутовой консоли запускаем hp-setup -i 192.168.0.33 и на вопрос об установке плагинов нужно будет выбрать пункт «Specify a path to the plug-in (advanced)» и указать путь к файлу с плагинами 😉 Дальше все понятно 🙂 Просто отвечаем на простенькие вопросы скрипта 🙂

Потом пробуем из под рута просмотреть листинг доступных сканеров:

root@ws:~# scanimage -L
device `hpaio:/net/HP_LaserJet_M1522nf_MFP?ip=192.168.0.33' is a Hewlett-Packard HP_LaserJet_M1522nf_MFP all-in-one
root@ws:~#

Как видите, сканер видится 🙂 Это радует.

Для того чтобы дать доступ к сканеру рядовому пользователю myuser нужно добавить его в группу scanner. Делается крайне просто:

root@ws:~# gpasswd -a myuser scanner

После этого пользователю myuser надо перелогиниться и попробовать запустить xsane. У меня при первом запуске xsane чуть задумался на поиске сканеров, а потом нормально открылся и отсканировал пробный документ 🙂

Вот так просто и незатейливо настраивается печать и сканирование в Linux с помощью устройства HP LaserJet 1522nf.

P.S. Реально был удивлен насколько все просто!

Linux — набор точки и буквы «ю» в rdesktop

Все кому хоть однажды приходилось конектится с Linux по RDP на винду знают о чудесной программке rdesktop (ИМХО конечно). Так вот чудесность этой программы заканчивается когда появляется необходимость использовать на виндомашине розкладку клавиатуры отличную от EN. И тут возможны 2 варианта:

  1. Вам повезло если на виндосерваке эти самые розкладки переключаются сочитанием CTRL+SHIFT. В этом случае язык ввода будет всетаки переключаться и набор кириллических буковок будет происходить. Серьезное неудобство только представляет отсутствие на привычном месте символа точки. Вместо него упорно набирается буква «ю». Притом кнопочка левее (которая обычно и есть «ю») тоже набирает «ю». Чудеса!
  2. Вам не повезло и розкладки переключать надо сочитанием клавиш ALT+SHIFT. Тут все вообще уныло! Как только жмем эту заветную комбинацию клавиш в надежде переключиться в альтернативную розкладку — ввод вообще пропадает как таковой! Дальше глухой номер — жми что угодно хоть до посинения … толку ноль! Мне помогал только перезаход по RDP. Читать полностью

XFCE — Дать пользователю права на выключение/перезагрузку ПК

Ну нравится мне XFCE в качестве графической оболочки для простых смертных пользователей! Вот нравится и все тут. Но вот заметил както после надцатого розвернутого образа, что у пользователей нету прав на выключение и перезагрузку ПК. Оно то может и хорошо что нету, но в моему случае эта фишка очень необходима! Ну можно конечно сначала выходить из XFCE а потом в GDM жать «Выключение» или что там надо — но както нето это … не кошерно. Решил заморочиться и сделать всетаки чтобы работало прям с XFCE. Темболее что самой оболочкой предусмотрены эти кнопки, вот только неактивны. Вот как это выглядит когда прав на выключение нету:

XFCE - Права на выключение

Итак, кнопки есть но неактивные. Поскольку готового рецепта у меня в голове небыло — решил погуглить. И решение на просторах великого и огромного нашлось довольно быстро! Оказывается, всегото надо добавить в sudo конфиг строчку такого содержания:

%users ALL=(ALL) NOPASSWD: /usr/sbin/xfsm-shutdown-helper

Где %users — группа которой я дал права на выключени/перезагрузку без какихлибо паролей и тд.

Чтобы правильно управлять судовым конфигом разработчиками рекомендована утилита visudo — ее я и использовал. Данную строчку просто добавил в конец конфига. Что самое интересное — сразу после сохранения судового конфига, кнопочки стали активные и вполне рабочие. Выглядит теперь это же окошко таким образом:

XFCE - Права на выключение

Вот так вот просто все заработало. Пользуем на ура, чего и вам желаем 🙂

Настройка PPTP соединения в Debian GNU Linux

Если не все, то многие знают что такое VPN. А также понимают насколько это хорошо и удобно. Ну вот сие благо пришло и в мой дом 🙂 Попросил на работе чтобы дали мне возможность из дому попадать в рабочую сеть. И вуаля … имею листик с такими вот настройками:

  • Тип соединения — PPTP
  • PPTP сервер — mymegawork.kiev.ua
  • Имя пользователя — worker13
  • Пароль — some_password

Итак, что мы из этого видим? Собственно, видим все что нам нужно — тип соединения, куда подключаемся и как авторизируемся.
Читать полностью

BackUP for MySQL Bases

Чтото сегодня параноя окончательно сьела мой мозг …. и я решился сделать бекап своих мускульных баз. Даже незнаю с чего бы это … вроде все исправно работает, да и спится ночью хорошо 😀 Но вдруг потянуло на подвиг — забекапиться. К слову сказать, бекапов мускула я вообще никогда не делал, и даже не успел об этом пожалеть. Но желание отчегото появилось. Так почему бы не попробовать реализовать?

Утилитка для этого дела искалась недолго — благо все есть в поставке самого MySQL. Называется mysqldump. Пользоваться проще пареной репы. Читать полностью

Адресная книга LDAP с дополнительными полями в Roundcube

Поставил на работе себе Roundcube в качестве Mail клента. Удобно — из любой машинки внутрисети по WEB имею доступ к своей почте 🙂 Установка самого Roundcube совсем тривиальная. Опишу очень коротко. Действуем по схеме:

  • Скачать последнюю версию из офсайта: http://www.roundcube.net/download Рекомендую качать версию stable — она гарантированно рабочая! За остальное никто не ручается 🙂
  • Розпаковать туда куда вам нужно.
  • Настроить apache
  • Установить Roundcube. Действовать согласно описанию из файлика INSTALL который есть в архиве с roundcube.

В результате проделанного выше программка у нас уже стоит — осталось только чуть настроить! Я установил себе roundcube в /opt/rouncube/ далее это будет видно 🙂

Прога у меня заработала после всего выше проделанного без каких бы то ни было проблем. Все отлично. Читаем почту … отправляем. Рулим сообщениями, папками, подписями и тд. Все очень удобно и шустро. Есть адресная книга … но локальная! А захотелось всетаки LDAP-ную книгу 🙂 Вот тут и начались танцы с бубном. Менял много чего в файлике main.inc.php для того чтобы настроить саму связь с сервером LDAP и поля которые одтуда надо брать. Итак, что имеем:

Работающий roundcube версии 3.1 а хотим ничего не сломав получить еще и LDAP Address Book 🙂 желательно  с автодополнением.

Пользователь ldapuser@my.domain с паролем 123. Доменный пользователь, которому достаточно дать права только на чтение LDAP и все! Это может быть просто технический пользователь … специально созданный для таких задач 🙂

LDAP Server — controller.my.domain

Приведу изначальный вид конфига main.inc.php чтобы понять откуда надо двигаться в настройке. Вот часть которая нас интуресует:

// In order to enable public ldap search, configure an array like the Verisign
// example further below. if you would like to test, simply uncomment the example.
$rcmail_config['ldap_public'] = array();

//
// If you are going to use LDAP for individual address books, you will need to
// set 'user_specific' to true and use the variables to generate the appropriate DNs to access it.
//
// The recommended directory structure for LDAP is to store all the address book entries
// under the users main entry, e.g.:
//
//  o=root
//   ou=people
//    uid=user@domain
//  mail=contact@contactdomain
//
// So the base_dn would be uid=%fu,ou=people,o=root
// The bind_dn would be the same as based_dn or some super user login.
/*
* example config for Verisign directory
*
$rcmail_config['ldap_public']['Verisign'] = array(
  'name'          => 'Verisign.com',
  'hosts'         => array('directory.verisign.com'),
  'port'          => 389,
  'use_tls'        => false,
  'user_specific' => false,   // If true the base_dn, bind_dn and bind_pass default to the user's IMAP login.
  // %fu - The full username provided, assumes the username is an email
  //       address, uses the username_domain value if not an email address.
  // %u  - The username prior to the '@'.
  // %d  - The domain name after the '@'.
  'base_dn'       => '',
  'bind_dn'       => '',
  'bind_pass'     => '',
  'writable'      => false,   // Indicates if we can write to the LDAP directory or not.
  // If writable is true then these fields need to be populated:
  // LDAP_Object_Classes, required_fields, LDAP_rdn
  'LDAP_Object_Classes' => array("top", "inetOrgPerson"), // To create a new contact these are the object classes to specify (or any other classes you wish to use).
  'required_fields'     => array("cn", "sn", "mail"),     // The required fields needed to build a new contact as required by the object classes (can include additional fields not required by the object classes).
  'LDAP_rdn'      => 'mail', // The RDN field that is used for new entries, this field needs to be one of the search_fields, the base of base_dn is appended to the RDN to insert into the LDAP directory.
  'ldap_version'  => 3,       // using LDAPv3
  'search_fields' => array('mail', 'cn'),  // fields to search in
  'name_field'    => 'cn',    // this field represents the contact's name
  'email_field'   => 'mail',  // this field represents the contact's e-mail
  'surname_field' => 'sn',    // this field represents the contact's last name
  'firstname_field' => 'gn',  // this field represents the contact's first name
  'sort'          => 'cn',    // The field to sort the listing by.
  'scope'         => 'sub',   // search mode: sub|base|list
  'filter'        => '',      // used for basic listing (if not empty) and will be used with search queries. example: status=act
  'fuzzy_search'  => true);   // server allows wildcard search
*/


// An ordered array of the ids of the addressbooks that should be searched
// when populating address autocomplete fields server-side. ex: array('sql','Verisign');
$rcmail_config['autocomplete_addressbooks'] = array('sql');

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

$rcmail_config['ldap_public']['WORK'] = array(
  'name'          => 'WORK',
  'hosts'         => array('controller.my.domain'),
  'port'          => 389,
  'use_tls'        => false,
  'user_specific' => false,   // If true the base_dn, bind_dn and bind_pass default to the user's IMAP login.
  // %fu - The full username provided, assumes the username is an email
  //       address, uses the username_domain value if not an email address.
  // %u  - The username prior to the '@'.
  // %d  - The domain name after the '@'.
  'base_dn'       => 'ou="Domain Users", dc=my, dc=domain',
  'bind_dn'       => 'ldapuser@my.domain',
  'bind_pass'     => '123',
  'writable'      => false,   // Indicates if we can write to the LDAP directory or not.
  // If writable is true then these fields need to be populated:
  'ldap_version'  => 3,       // using LDAPv3
  'search_fields' => array('mail', 'cn'),  // fields to search in
  'name_field'    => 'cn',    // this field represents the contact's name
  'email_field'   => 'mail',  // this field represents the contact's e-mail
  'surname_field' => 'sn',    // this field represents the contact's last name
  'firstname_field' => 'gn',  // this field represents the contact's first name
  'phone_field'   => 'telephoneNumber', // telephone
  'mobile_field'  => 'mobile', //added by black_13 (mobile number)
  'company_field' => 'company', //added by black_13 (company)
  'title_field'   => 'title',
  'sort'          => 'cn',    // The field to sort the listing by.
  'scope'         => 'sub',   // search mode: sub|base|list
  'filter'        => '(&(mail=*))', // used for basic listing (if not empty) and will be used with search queries. example: status=act
  'fuzzy_search'  => true);   // server allows wildcard search

// An ordered array of the ids of the addressbooks that should be searched
// when populating address autocomplete fields server-side. ex: array('sql','Verisign');
$rcmail_config['autocomplete_addressbooks'] = array('sql','WORK');

После того как поправили вот таким образом и сохранили, пробуем перезайти в roundcube Теперь если зайти в Контакты (справа вверху) у нас должно появиться еще одна группа с названием WORK. Выбираем ее и видим список контактов взятых с LDAP. Но дополнительные поля пока что отображаться не будут … только cn, mail, sn и gn. Чтобы отобразились допольнительные поля нужно сделать следующее. Правим конфиг /opt/rouncube/program/localization/ru_RU/labels.inc Точнее добавляем туда несколько строк, я добавил в конец, перед ?> вот такое:

$labels['mobile'] = 'Мобильный телефон';
$labels['phone'] = 'Городской телефон';
$labels['company'] = 'Компания';
$labels['title'] = 'Должность';

Дальше, переходим в папку /opt/rouncube/program/steps/addressbook/ и открываем для редактирования файл show.inc В нем находим строчку:

$a_show_cols = array('name', 'firstname', 'surname', 'email');

Меняем на

$a_show_cols = array('company', 'title', 'name', 'firstname', 'surname', 'email', 'phone', 'mobile');

В нужной вам последовательности.

Тоже самое повторяем с конфигами save.inc. Находим строчку:

$a_save_cols = array('name', 'firstname', 'surname', 'email');

И меняем на

$a_save_cols = array('company', 'title', 'name', 'firstname', 'surname', 'email', 'phone', 'mobile');

Повторяем этот же финт с файликом edit.inc Правим строчку:

$a_show_cols = array('name', 'firstname', 'surname', 'email');

до вида:

$a_show_cols = array('company', 'title', 'name', 'firstname', 'surname', 'email', 'phone', 'mobile');

На этом настройка закончена 🙂 Вот скриншот того что получилось:

Чуток пришлось в GIMP помазать скрин — чтобы палива поменьше было, но вобщем результат налицо 🙂 Посути никто нас не заставляет ограничиваться только этими полями. Просто мне они показались важными. Вы можете настроить под себя отображение нужных вам полей и их последовательность.

Главное что мы усвоили как это настраивается 🙂 За сим все … удачи!

sources.list для Debian

Очень давно (больше года) не вносил изменения в этот конфиг. Посему считаю для себя его полностью настроенным 🙂 В данном случае использую дистрибутив Debian Lenny. Но конфиг легко можно трансформировать и под squeeze заменив везде по тексту слово lenny на squeeze. Напоминаю, что это конфигурационный файл системы управления пакетами APT. Тут перечислены сервера-источники пакетов для APT. Путь к файлу в Debian — /etc/apt/sources.list Ну, собственно, вот содержание файла:

#### Main ####
deb http://ftp.debian.org/debian/ lenny main contrib non-free
#### Multimedia ####
deb http://ftp.debian.org.ua/debian-multimedia/ lenny main
#### Security Updates ####
deb http://security.debian.org/ lenny/updates main contrib non-free
#### Backports ####
deb http://www.backports.org/backports.org/ lenny-backports main contrib non-free
#### E17 - Elive Repository ####
deb http://repository.elive-systems.com/ lenny main elive drivers tests efl ports
####   Opera Browser  ####
#deb http://deb.opera.com/opera lenny non-free
####   Clam AV   ####
deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free

Юзаю уже больше года — все гуд 🙂 Такчто берите кому надо 😉

Печать запароленого PDF в Linux

Сегодня утричком притащили диск с каталогом Украинских почтовых марок за 2009 год и просьбу в придачу — розпечатать. На диске только один PDF файлик на пару десятков метров. Ну печатать то дело нехитрое, благо рядом стоит огромный цветной лазерник OKI5300, ласково обзываемый в офисе дурой 🙂 На него и нужно печатать … попросили чтобы красиво усе было — в цвете, марки всетаки, не абы шо 🙂 Вот отрыть сей PDF труда не составило …  только кнопочка «Печать» — неактивна совсем 🙁 Подумав что у меня какаято лажа с Evince, попросил сотрудника открыть сей файлик изпод винды ABBY FineReader-ом, так эта чудо-прога сходу пароль спросила и работать без парольчика с файлом наотрез отказалась 🙂 Ну короче, решено было искать окольные путя. Их пришло в голову аж 2:

  • Открыть программкой GIMP — эта прога при открытии PDF сходу предлагает разбить документ на слои по схеме одна страничка -> один слой. Потом можно работать со слоями. Например, сохранить послойно (читай постранично) можно.
  • Найти иную приблуду которая из консоли разобьет PDF документ на кучу картинок удобоваримого формата по схеме Одна страничка -> одна картинка

Могу заверить что рабочими оказались оба метода. Я проверил их в последствии. Суть варианта с GIMP, я думаю, итак понятна. Достаточно просто попробовать открыть PDF документ, а дальше появится диалог открытия PDF где все интуитивно делается. А вот второй метод по своей идее понравился мне намного больше! В первую очередь тем что более автоматизированный. С GIMP много ручной работы и мороки :). Короче, прога которая автоматом умеет постанично преобразовать PDF в SVG изображения нашлась быстро (apt-cache search здорово помог). Называется она вполне предсказуемо — pdf2svg. Установить ее можно из репозитариев Debian. Делаем, как всегда, для установки пакета:

root@comp: ~# apt-get update && apt-get install pdf2svg

Дальше просто подсмотрел в мане как сей приблудой пользоваться. Оказывается проще простого. К применру есть у нас  PDF файлик на 23 станички и называется он katalog-2009.pdf, а хотим преобразовать его постранично в кучу изображений с названиями вида katalog-2009_1……23.svg Тогда делаем вот так (все в той же консоли):

root@comp:~ # mkdir katalog-2009
root@comp:~ # cd katalog-2009
root@comp:/root/katalog-2009# pdf2svg /root/katalog-2009.pdf katalog-2009_%d.svg all

Ждем пока команда отработает 🙂 И вуаля, у нас 23 картинки которые можно уже напечатать как кому заблагоразсудится 🙂 Или вообще собрать из них новый PDF — но уже не запароленный, конечно 🙂

Ну дерзайте!