четверг, 20 декабря 2012 г.

Windows printer via SAMBA через браузер Ubuntu 12.04

Столкнулся на днях с задачей: добавить шаровый мастдайный принтер в  ubuntu 12.04 через вебморду cups.

Задача в общем-то элементарная... Но возникли нюансы. Принтер зацеплен к доменной тачке и соответственно требует доменную аутентификацию.

Решение:

Лезем на вебморду CUPS. В любом браузере набирам
http://localhost:631

Идем в секцию "Администрирование" и добавляем принтер. Выбираем протокол "Windows Printer via SAMBA" и жмакаем "далее". А дальше интересней...

Чтобы передать на принтер доменную аутентификацию в строке подключения пишем:
 smb://usrername:userpassword@DOMAINNAME/computername/printername

ВАЖНО!!! Домен нужно писать именно заглавными буквами и обязательно FQDN.

В случае если аутентификация не нужна - можно в строке подключения написать просто:
 smb://guest@computername/printername

среда, 13 июня 2012 г.

Полная установка 1С 7.7 SQL, 1C8.2 в Linux (Ubuntu 10.04) c поддержкой COMОбъектов

Обновляем все пакеты до их последних версий:
$sudo apt-get update
$sudo apt-get upgrade 
$sudo apt-get dist-upgrade
 
Качаем необходимые компоненты:
$sudo wget -c https://dl.dropbox.com/u/61986139/1c/wine1.5.5_ALAH_buid.tar.gz

альтернативная ссылка когда балуется dropbox:
https://docs.google.com/file/d/0B0NszQEdLyqLVXEycC01dGhfT2s/edit?usp=sharing

Устанавливаем необходимые зависимости для сборки wine:
$sudo apt-get build-dep wine

Распаковываем архив со сборкой:
$tar -xvzf wine1.5.5_ALAH_buid.tar.gz 
$cd ./wine1.5.5_ALAH_buid

Устанавливаем wine:
$tar -xjf wine-1.5.5.tar.bz2

$./wine-1.5.5/tools/wineinstall 


Устанавливаем wine_geco:
$sudo mkdir -p /usr/share/wine/gecko
$sudo cp ./geko/wine_gecko-1.5-x86.msi /usr/share/wine/gecko/


Устанавливаем winetricks:
$sudo cp ./winetricks/* /usr/bin
$sudo chmod +x /usr/bin/winetricks1.5
$sudo chmod +x /usr/bin/winetricks@etersoft

Устанавливаем DCOM:
$wine ./DCOM98.EXE /C
  (выбираем папку c:\windows\system32 (перезаписывать все!))


Устанавливаем необходимые компоненты:

- архиватор 7-zip
$winetricks@etersoft 7zip

- MS XML Core Services 3.0
$winetricks1.5 msxml3 

- MS XML Core Services 4.0
$winetricks1.5 msxml4

- MSScript Control 
$winetricks1.5 msscript

Регистрируем необходимые библиотеки:
$cd /home/user/.wine/drive_c/windows/system32
$wine regsvr32 msxml3.dll
$wine regsvr32 msxml4.dll
$wine regsvr32 msscript.ocx
$cd /home/user/wine1.5.5_ALAH_buid 

Копируем и регистрируем необходимые библиотеки:
$cp ./DLLS/*.* /home/user/.wine/drive_c/windows/system32
$cd /home/user/.wine/drive_c/windows/system32 
$wine regsvr32 mfc40.dll
$wine regsvr32 mfc42.dll
$wine regsvr32 mfc42u.dll
$cd /home/user/wine1.5.5_ALAH_buid 

Устанавливаем необходимые компоненты:

- MDAC 2.7
$winetricks1.5 mdac27

- MSJET 4.0
$winetricks@etersoft jet40

- Internet Explorer
$winetricks1.5 ie8

Устанавливаем ключи реестра для работы ODBC:
$wine regedit

импортировать ключ реестра из ./ODBC/ODBC.reg


Устанавливаем 1С7.7, 1С8.2

Процесс установки 1с под wine почти ничем не отличается от такового процесса под Windows. В процессе установки следует помнить, что НЕ НАДО устанавливать HASP DEVICE DRIVER.



Устанавливаем замещение библиотек:
$winecfg
добавить в "приложения" 1cv7s.exe и на вкладке "Библиотеки" выставить для него такие замещения:
       mfc42 = (сторонняя, встроенная)
       msvcrt = (сторонняя, встроенная)
       msvcrt40 = (сторонняя, встроенная)
       odbc32 = (сторонняя)
       odbccp32 = (сторонняя)
       ole32 = (сторонняя)
       oleaut32 = (сторонняя)
       olepro32 = (сторонняя)
       rpcrt4 = (сторонняя)
       sqlsrv32 = (сторонняя, встроенная)

+ для 1cv7s.exe на вкладке "Графика" снять галочку "Разрешить менеджеру окон декорировать окна wine"

добавить в "приложения" 1cv8.exe и на вкладке "Библиотеки" выставить для него такие замещения: 
       ole32 = (сторонняя)
       oleaut32 = (сторонняя)
       olepro32 = (сторонняя)
       rpcrt4 = (сторонняя)

+ для 1cv8.exe на вкладке "Графика" снять галочку "Разрешить менеджеру окон декорировать окна wine"


Устанавливаем поддержку windows-шрифтов:
$winetricks1.5 corefonts
Дополнительные шрифты, при необходимости, можно установить из ./FONTS/

 



Локальная версия 1С 7.7 готова к работе. 1С8.2 готова к работе как в локальном, так и в клиент-серверном варианте.



Для 1С 7.7 SQL версии необходимо заменить библиотеку BkEnd.dll на пропатченную и подкинуть V7PLUS.DLL для работы регламентированной отчетности:
$cp ./1cDLL/* /home/user/.wine/drive_c/Program\ Files/1Cv77/BIN/


(Самостоятельно можно пропатчить BkEnd.dll можно так:
- поставить 25й релиз,
- пропатчить его с помощью uSP_2.13.24_Soaron.exe (закладка "защита" пункт "Разрешать другим пользователям входить в базу")

- скопировать из /home/user/.wine/drive_c/Program \Files/1Cv77/BIN/ новую
библиотеку BkEnd.dll.

- обновить 1с до 27го релиза
- вернуть пропатченную библиотеку обратно)

 !!!при замане библиотеки теряятся только блокировка по количеству
пользователей с одного логина... Болкировка на документы и таблицы
журналов выставляется корректно!!!



Отключаем проверку кодовой страницы ИБ в 1С 7.7:
$touch /home/user/.wine/drive_c/Program\ Files/1Cv77/BIN/ordnochk.prm

Устанавливаем CIFS:
$sudo dpkg -i ./etercifs/4.5.3/*.deb 
Свежие пакеты CIFS можно взять здесь

Добавляем автомонтирование БД при старте системы:
$sudo mcedit /etc/fstab
строка монтирования
//server1c/BaseBuh /mnt/BaseBuh cifs noperm,rw,user=alah,dom=mydomain,pass=mypass,iocharset=utf8,forcemand,direct 0 0
(save file)
$sudo mount -a 

!!!ВНИМАНИЕ!!! в опциях user=alah,dom=mydomain,pass=mypass необходимо поставить СВОИ данные (юзер с правами доступа в каталог БД)!!!


Установка HASP
Если 1C лицензионная и есть ключи, то необходимо установить HASP. В противном случае это действие можно пропустить
$sudo dpkg -i ./HASP/*.deb
Выключаем компьютер, вставляем ключ защиты и запускаемся
Свежие пакеты HASP можно взять здесь

Устранение проблем:

В случае проблемы у 1С 7.7 с нахождением сервера - заходим в конфигуратор --> "Администирование" --> "Параметры базы данных SQL" и адрес сервера меняем с имени на его IP-адрес.


Также, случается, что 1С 8.2 выдает ошибку: "Ошибка загрузки компоненты backbas". В таком случае лечится установкой дополнительных пакетов:
#apt-get install libodbcinstq1c2 

В некоторых дистрах пакет зовется unixodbc

Иногда, бывает, что в wine-приложениях не набирается "русский" текст. Кнопки жмешь, а букв нет... Причем с цифровой клавиатуры все набирается нормальною Это происходит из-за не корректной для windows-приложения локализации. Лечится так:
#locale-gen ru_RU.CP1251

и добавляем вначале команды на "кнопке запуска" приложения:
LANG=ru_RU.CP1251


Проблемы с выгрузкой из 1С 7.7 в XML (декларация по НДС):

"msxml3.dll: Incorrect definition for the root element in schema" и "компонента v7plus ошибка инициализации xml parser"

Лечится так:
Необходимо заменить в system.reg все строки типа
@=str(2):"%SystemRoot%\\system32\\msxml4.dll"
на
@="C:\\windows\\system32\\msxml4.dll"
либо выполнить скрипт:
$sh ./system.sh


либо выполнить команду:
$wine regsvr32 /u msxml4.dll 
$wine regsvr32 msxml3.dll




 Для доступа к БД FireBird, Interbase из 1С - устанавливаем IBProvider:
$wine ./ibprovider/IBProvider_free_32_3.11.1.13186.exe


Также, часто, разработчики используют вспомогательные модули для 1С, такие как - OpenConf.
Рассмотрим его установку.

Качаем последний OpenConf (http://openconf.1cpp.ru/).
Перед установкой OpenConf, обновим Windows Script Host (он идет с поставкой OpenConf - файл scriptru.exe)

В каталоге Bin каталога установки 1С создаем папку Config и перемещаем в неё оригинальный файл config.dll из поставки 1С.

Скопируем в каталог Bin содержимое архива из поставки OpenConf (согласившись с вопросом на перезапись папки Config)

Из каталога c:/Program Files/1Cv77/BIN/config/system регистрируем все WSC компоненты:
$cd /home/user/.wine/drive_c/Program\ Files/1Cv77/BIN/Config/System
$wine regsvr32 /i:CommonServices.wsc C:/windows/system32/scrobj.dll
... и т.д. для всех файлов

!!!! Компонент OpenConf.RegistryIniFile.wsc надо регистрировать в последнюю очередь !!!!


Остальные библиотеки из папки c:/Program Files/1Cv77/BIN/config/system копируем в c:/windows/systeem32 и регистрируем стандартным способом:
$wine regsvr32 dynwrap.dll 
... и т.д. для всех dll-файлов


Вот и все! Жопиздан! (c) Job is done

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

Ноутбуки Asus и Ubuntu 10.04

Попался как то в руки такой себе замечательный ноут ASUS K50C.
Ubuntu 10.04 лягла на него "наура". Собсна, а что там такого?! Но без пост-исталяционных косяков не обошлось.

Поковырявшись в интернетах, обнаружил, что ASUS не дружит с UBUNTU. Т.е. даже на сайте производителя так и заявляют - бла, бла, бла только "mast die" поддерживается и все тут.

После установки ubuntu 10.04 поймал проблемы с видео и сетью.

Сеть как бы была... Интерфейс поднимался. Таблица маршрутизации рисовалась. Сам себя пинговал. Иногда, даже еще и к другим тазикам пинг пролазил. Но полноценной работы сети не наблюдалось.

С видео наблюдались такие глюки:
При загрузке, на моменте старта grup2, изображение начинало дрожать и прыгать. При появлении экрана приглашения в систему изображение стабилизировалось, но на грустном разрешении 800х600. При переключении в виртуальные консоли tty1...tty6 (ctrl+alt+f1...f6) - изображение опять хаотично дрожит и скачет ка при закрузке...

Проблемы с сетью лечатся так:

правим /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quite splash pci=nomsi"

Update`тим grup2 и ребутимся:
$sudo update-grub2
$sudo reboot

Урррра! Сеть появилась. Везде ходится свободно!



С видюхой пришлось поколдовать...

Баг с дрожанием изображения - "мечта эпилептика", лечится так:
$sudo bash
#echo blacklist vga16fb > /etc/modprobe.d/blacklist-vga16fb.conf
#update-initramfs -u
#reboot

Стало полегче - появились доступные виртуальные консоли!
Идем дальше...

Смотрим, что за видео адаптеры присутствуют в системе:
$lspci | grep VGA
на выхлопе имеем что то типа:
01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 771/671 PCIE VGA Display Adapter (rev 10)
Ога! Определились, что нам нужен sis`овский драйвер ([SiS] 771/671 PCIE)

Качаем от сюда драйвер под нашу ось... Распаковываем и добавляем в модуля:
$tar xzvf sis_drv_ubuntu1004_20100504.tar.gz
$cd sis_drv_ubuntu1004_20100504
$sudo cp sis_drv.* /usr/lib/xorg/modules

Драйвера подкинули. Генерим чистый конфиг Xorg`a:
переходим в виртуальную консоль - Ctrl+Alt+f1
$sudo service gdm stop
$sudo bash
#Xorg -configure
#mv xorg.conf.new /etc/X11/xorg.conf
Теперь правим этот конфиг под наши нужды. Просто добавим/поправим секцию Device так:
Section "Device"
     Identifier "Configured Video Device"
     Driver "sis"

     Option "UseTiming1366" "yes"
EndSection

Перезагружаемся. Вуаля!

Насладиться прелестями 3D эффектов к сожалению не удастся, ибо данный драйвер предназначен только для 2D, но прилично работать вполне позволяет.

вторник, 13 марта 2012 г.

Интернет сайт за NAT. Проброс сайта в локальной сети. Shorewall. Forwardings

Возникла такая вот задача:
Есть сервер в локальной сети (IP=192.168.0.1), на котором крутится интернет сайт. Есть шлюз в мир (eth0 IP=192.168.0.2), на котором установлен shorewall (настройка шлюза и shorewall), с постоянным IP-адресом (bb.bb.bb.bb) и зарезервированным доменным именем (www.mydomen.com). Необходимо: обеспечить возможность обращения к интернет сайту из "мира" и из локальной сети по доменному имени (www.mydomen.com).


С открытием и пробросом сайта в "мир" как бы проблем не возникло. Тут совсем все просто.
Разрешаем на shorewall`е интрент запросы:
 
$sudo mcedit /etc/shorewall/rules
 
ACCEPT              net          fw         tcp        www
or
WEB(ACCEPT)     net          fw 

И пробрасуем интернет запросы на наш сервер, где крутится сайт:
 
$sudo mcedit /etc/shorewall/rules
 
DNAT  net          loc:192.168.0.1         tcp        www

Собственно на этом все. Вуаля, доступ из мира разрешен!!!


А вот с доступом из локальной сети придется повозиться.
ВАЖНО!!! В интерфейсах необходимо добавить опцию routeback:
$sudo mcedit /etc/shorewall/interfaces
 
#ZONE INTERFACE BROADCAST OPTIONS
loc       eth0          detect         routeback  

Добавим правило маскарада:
$sudo mcedit /etc/shorewall/interfaces
 
#INTERFACE              SOURCE         ADDRESS          PROTO          PORT(S)
eth0:192.168.0.1       eth0              192.168.0.2      tcp               www

И, собственно, правило проброса в локальную сеть:
$sudo mcedit /etc/shorewall/rules
#ACTION     SOURCE       DEST             PROTO     DEST         SOURCE       ORIGINAL       RATE USER/ MARK
#                                                                    PORT         PORT (S)     DEST
DNAT          loc       loc:192.168.0.1      tcp         www           -               bb.bb.bb.bb

Если постоянный внешний IP-адрес отсутствует или по доменному имени резолвится несколько IP-адресов, то необходимо использовать параметры:
$sudo mcedit /etc/shorewall/params
 ETH1_IP=$(find_first_interface_address eth1) 
 
где eth1 - интерфейс, который смотрит в мир (ADSL например)

Тогда правило проброса будет выглядеть так:
$sudo mcedit /etc/shorewall/rules
#ACTION     SOURCE       DEST             PROTO     DEST         SOURCE       ORIGINAL       RATE USER/ MARK
#                                                                    PORT         PORT (S)     DEST
DNAT          loc       loc:192.168.0.1      tcp         www           -               $ETH1_IP


Теперь все ok! Mission complete :)

Более подробную инфу на буржуйском смотри тут:
http://shorewall.net/FAQ.htm#faq2
http://shorewall.net/FAQ.htm
http://shorewall.net/Documentation.html

понедельник, 27 февраля 2012 г.

LAMP server под ubuntu 10.04 и не только!


В связи с тем что уже реально заколебался каждый раз напрягать мозг и гуглить когда надо прикрутить «Лампу» решил сделать заметку для себя. Инфы в инетах много, но реально «стоящей» мало...
LAMP server — аббревиатура: Linux, Apache, MySQL, PHP/Perl/Python (плюс, сюда часто добавляют Ruby On Rails).
Устанавливается достаточно просто, можно при помощи одной команды:
$ sudo apt-get install lamp-server^

но это довольно тупо и как показала практика неэффективно... (для профессиональных танцоров с бубном подойдёт, ну или сервер планируется «не замысловатый»). А так...
  1. Linux — как установить и правильно настроить сервер на Linux надо отдельную статейку создавать, предполагается что он есть! (ubuntu 10.04 рулит!)
  2. Apache. Установка веб-сервера Apache довольно проста:
$ sudo apt-get install apache2
  1. PHP. Не забываем модуль для работы с мускулом:
$ sudo apt-get install php5 libapache2-mod-php5 php5-mysql
хотя на много лучше:
$ sudo apt-get install libapache2-mod-php5 libapache2-mod-ruby php5 php5-common php5-curl php5-dev
php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming
php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

последняя команда добавит модули PHP. Занимает не так много места, но мало ли что в жизни случиться...

(После данной операции, объём занятого дискового пространства возрастёт где-то на 60MB, но зато готовы ко всем превратностям судьбы). Если стрёмно или впадлу, но требуются дополнительные модули PHP, то полный список пакетов доступных в репозитарии, можно получить, введя
$sudo apt-cache search php5
  1. Пакеты для «мускула» устанавливаются командой:
$ sudo apt-get install mysql-server mysql-client

В процессе установки должен появиться запрос на ввод пароля администратора базы данных. Если установку прошла в тихом режиме (а такого я ни разу не встречал!), не задавая вопросов, то надыть установить пароль root вручную:
$ sudo mysqladmin -u root password пароль

После данной операции, объём занятого дискового пространства возрастёт ещё на 50MB
ну типо всё... а нет!
$ sudo /etc/init.d/apache2 restart
(для деликатного ребута : $ sudo /etc/init.d/apache2 reload)

Проверить что у на выхлопе получилось необходимо так:
Набираем в браузере строку http://localhost, – в ответ мы должны увидеть надпись «It works! и бла-бла-бла». Чтобы проверить работу PHP, создаем файл test.php и пробуем к нему обратиться:
$ sudo echo '<?phpinfo()?>' > /var/www/test.php
и в браузере http://localhost/test.php
В ответ появиться таблица с настройками PHP. Если вместо счастья ахинея типа «404» или вообще ошибка, следует просмотреть логи веб-сервера, расположенные в каталоге /var/log/apache2. Тут как правило багатенно информативных подсказок и косяки озвучиваются.
  1. web-сервер без виртуальных хостов (создания нескольких сайтов для одного ip-шника) - «унылость» и провокация (с возможностью наживы для разработчика в будущем!) Поэтому кратко:
Существует 2 папки - /etc/apache2/sites-available — там список потенциально возможных сайтов, и /etc/apache2/sites-enabled — тут рабочие сайты.
В папке sites-available есть готовый шаблон как правильно оформить виртуальный хост (его лучше оставить как памятку на будущие). На базе этого шаблона надо создать новый файл с таким содержанием:
<VirtualHost *:80>
ServerAlias Алиас_сайта #будет отдельная статья (указывать не обязательно, также рулится на уровне доменных имён)
ServerAdmin webmaster@localhost #мыло админа ;)
ServerName site1.lg.ua # имя сайта
DirectoryIndex index.php index.html index.htm # порядок поиска индексных файлов
DocumentRoot /var/www/site1.lg.ua # путь (любой) к папке с сайтом 

<Directory>

<Directory /var/www/site1.lg.ua> # настройка доступа для директории
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
…..
ErrorLog /var/log/apache2/error.log # лог ошибок
# Possible values include: debug, info, notice, warn, error, crit,alert, emerg.
LogLevel debug #логировать все ошибки и предупреждения 
CustomLog /var/log/apache2/access.log combined # лог доступа

</virtualHost>

Все каталоги указанные в этом конфиге должны быть созданы в ручную, а название сайта продублировано в /etc/hosts!
О! Чтобы сайт включить необходимо после всех вышеозначенных манипуляций воспользоваться командой
#a2ensite /etc/apache2/sites-available/имя_сайта

Чтобы выключить соответсвенно
#a2dissite /etc/apache2/sites-available/имя_сайта

Ну или прибить в папке sites-enabled одноимённый конфиг.
Пы.Сы. При первом запуске веб-сервера в консоли выводится сообщение о том, что Апач не может определить доменное имя данного хоста:

«apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName»
ну или как-то так.... Это не проблема, но реально кумарит! Чтобы его убрать, следует установить значение переменной ServerName в apache2.conf. (Иногда эта настройка вынесена в отдельный файл /etc/apache2/conf.d/fqdn).
ServerName пофиг-что

Пы.Пы.сы. Имеет смысл сразу поставить phpmyadmin... Веб-сервер работает с правами пользователя: USER=www-data GROUP=www-data
Основные конфигурационные файлы LAMP в Ubuntu
  • /etc/network/interfaces – настройка сетевых интерфейсов
  • /etc/hostname – сетевое имя узла
  • /etc/hosts – соответствие имени и IP (локальный DNS)
  • /etc/resolv.conf – IP-адреса DNS-серверов
  • /etc/apt/sources.list – используемые APT-репозитарии пакетов
  • /etc/mysql/my.cnf – настройка MySQL
  • /etc/apache2 – каталог с конфигурационными файлами веб-сервера
  • /etc/apache2/apache2.conf – основной файл настройки Apache
  • /etc/apache2/conf.d/fqdn – имя (ServerName) веб-сервера по дефолту
  • /etc/apache2/envvars – основные переменные Apache
  • /etc/apache2/sites-available/default – сайт по-умолчанию
  • /etc/php5 – файлы настроек PHP5


Большинство взято от сюда: http://www.xakep.ru/magazine/xa/120/120/1.asp ну и из личного опыта (само собой).

Собственные ярлки на панели (Launcher) Unity

Собрал давича из исходников RealVNC. VncServer добавил в автозагрузку, тут поблем думаю нет. А вот с добавлением ярлычка для vncviewer в лаунчер возникли траблы... Вот мануал как добавить любой ярлычок на панель:

1. Создаем в /usr/share/applications файл *.desktop для интересующей нас проги. В моем случае это vncviewer.desktop такого содержания:
$sudo mcedit /usr/share/applications/vncviewer.desktop

[Desktop Entry]
Name=VNCViewer
Comment=VNCViewer
Exec=vncviewer
Icon=vncviewer.png
Terminal=0
Type=Application
Encoding=UTF-8
Categories=Network;Application;

2. С помощью gimp`a или др. редактора изображений создаем/конвертируем иконку (*.png) в размер 32х32 пиксиля. Называем ее vncviewer.png (т.к. в конфиге Icon=vncviewer.png) или с таким именем, который пропишем в конфиге. Кидаем иконку в /usr/share/icons

3. Запускаем nautilus или любой другой менеджер файлов. Переходим в /usr/share/applications и тащим интересующий нас *.desktop (vncviewer.desktop) на панель (Launcher).
Или можно прописать руками:
$dconf-editor
desktop-->unity-->launcher-->favorites
добавить параметр: 'vncviewer.desktop'

пятница, 24 февраля 2012 г.

Cкрипт удаленной перезагрузки linux-сервера через openssh

Так случается, что не всегда есть возможность самому подключиться к удаленному Linux-серверу, чтобы его перезагрузить (например, для вступления в силу каких-либо изменений). Тогда появляется необходимость дать права на перезагрузку юзверю. Но, чтобы не давать ему админских прав на управление сервером, можно наваять скриптец для удаленной перезагрузки. Понадобится:

1. Openssh-server на Linux-сервере:
admin@server$ sudo apt-get install openssh-server

2. Openssh-client на Linux-клиенте:
admin@client$ sudo apt-get install openssh-client

3. Создаем на сервере пользователя, от имени которого будет выполняться ребут:
admin@server$ sudo useradd -m -s /bin/bash rebootuser
admin@server$ sudo passwd rebootuser
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully 

4. На клиенте создаем открытый ключ (дабыне палить root пароли юзверям):
admin@client$ ssh-keygen -t rsa
 
на предложение
Enter passphrase:
Enter same passphrase again:
нажать 'Enter' (т.е. Оставить пустым, чтоб ssh не требовал пароль)

ключ будет лежать в ~/.ssh/id_rsa.pub

5. Копируем открытый ключ на сервер:
Содержимое файла ~/.ssh/id_rsa.pub на клиенте, необходимо скопировать в файл домашней директории пользователя, от имени которого будет осуществляться подключение по ssh (в нашем случае - это rebootuser) ~/.ssh/authorized_keys (если его нет, создаем) на сервере. Сохраняем. Дергаем службу ssh ($sudo /etc/init.d/ssh restart)

Логинимся на серв для проверки:
admin@client$ ssh rebootuser@'server_ip'

Вуаля! Входим без запроса пароля!

6. Разрешаем на сервере rebotuser`у выполнять перезгрузку и выключение сервера без ввода пароля:
admin@server$ sudo visudo
и в конц добавляем
rebootuser 'server_name'=NOPASSWD: /sbin/reboot,/sbin/shutdown -h now

7. Создаем на клиенте скрипт ребута и делаем его исполнительным:
admin@client$ mcedit reboot_halt.sh
и вставляем в него:
ssh -t rebootuser@'server_ip' 'sudo reboot'
для выключения соответственно:
ssh -t rebootuser@'server_ip' 'sudo shutdown -h now'
даем права на исполнение:
admin@client$ chmod o+x reboot_halt.sh

Жопиздан:)

четверг, 23 февраля 2012 г.

Ошибка GPG

При обновлении Ubuntu столкнулся с такой вот ошибкой:
         Ошибка GPG: http://ua.archive.ubuntu.com lucid Release

Лечится так:
$ sudo -i
# apt-get clean
# cd /var/lib/apt
# mv lists lists.old
# mkdir -p lists/partial
# apt-get clean
# apt-get update

четверг, 16 февраля 2012 г.

Установка драйвера nVidia на Ubuntu 11.10 через консоль

Есть 2 неплохих способа установки драйвера nVidia на Ubuntu 11.10 через консоль:

Способ 1. Используем репозиторий Х-SWAT:
$sudo apt-add-repository ppa:ubuntu-x-swat/x-updates
$sudo apt-get update
$sudo apt-get install nvidia-current

Способ 2. Качаем с оф. Сайта nvidia драйвер (NVIDIA-Linux-x86-290.10.run) под свой девайс. Преходим в полноценный терминальный режим (Ctr+Alt+F1). Оключаем X не перегружаясь в режим восстановления:
#/etc/init.d/lightdm stop
если установлен gnome (или версия Ubuntu <= 10.04), то команда:
#/etc/init.d/gdm stop
 далее:
#sh /home/drivers/NVIDIA-Linux-x86-290.10.run


По окончании  выполнения установки/обновления драйвера - ребут.

вторник, 14 февраля 2012 г.

Настраиваем tray в Unity (Ubuntu 11.10)

ВАЖНО!!! Чтобы изменения вступили в силу, необходимо перезапускать gnome-settings-daemon (ctrl+alt+backspace или reboot)


В Unity есть так называемый белый список приложений, и все приложения не вошедшие в него не будут отображаться в трее.
Чтоб добавить в этот whitelist свое приложение - делаем следующее:

Получить список программ в whitelist`e:
$gsettings get com.canonical.Unity.Panel systray-whitelist

Добавить свои приложения в список и выполнить:
$gsettings get com.canonical.Unity.Panel systray-whitelist ['JavaEmbeddedFrame', 'Wine', 'Dropbox', 'Mubmle', 'hp-systray', 'Pidgin', 'Radiotray', 'Skype']

Или просто разрешить сворачиваться в трей всем, кто умеет:
$gsettings set com.canonical.Unity.Panel systray-whitelist "['all']"

Убрать индикатор клавиатуры:
(необходим HEX-редактор, я, например, пользую Bless)

$sudo cp /usr/lib/gnome-settings-daemon-3.0/libkeyboard.so /usr/lib/gnome-settings-daemon-3.0/libkeyboard.so.back
(возможно библиотека лежит в  /usr/lib/gnome-settings-daemon-2.0/ - это зависит от версии gnome) 
$sudo bless /usr/lib/gnome-settings-daemon-3.0/libkeyboard.so
далее необходимо найти hex-занчение
FF 83 F8 01 0F
FF 83 F8 01 0F = if (g_slist_length (current_kbd_config.layouts_variants) > 1) 
и заменить 01 на 02; должно получиться
FF 83 F8 02 0F
FF 83 F8 02 0F = if (g_slist_length (current_kbd_config.layouts_variants) > 2) 
Что означает: если у вас менее 3 раскладок клавиаторы - иконка показываться не будет



Убрать индикатор сообщений:
$sudo apt-get remove indicator-messages 


Добавить индикатор погоды:
$ sudo apt-get install indicator-weather
+ добавить его в его автозапуск (команда: indicator-weather)

четверг, 9 февраля 2012 г.

Управление сетевыми интерфейсами в UBUNTU

Иногда необходимо переназначить имя сетевого интерфейса. Например, при замене сетевой карты, если используется статика в настройках интерфейса или к имени интерфейса подвязаны скрипты, удобно просто переназначить новый интерфейс eth1 на старый eth0.
Делается это так:
В файле /etc/udev/rules.d/70-persistent-net.rules прописаны все интерфейсы. Привязка идет по MAC-адресу. Чтоб изменить название достаточно в конце строки с необходимым интерфейсом изменить название, например, eth1 меняем на eth0. Reboot. Все, карты видны, как нам нужно.

Полезные команды по управлению сетевыми интерфейсами в Ubuntu:

$ifconfig                                           - вывод инфы об активных интерфейсах

$ifconfig -a                                       - вывод инфы о ВСЕХ интерфейсах

#ifconfig eth0 up                             - активировать интерфейс eth0

#ifconfig eth0 down                        - деактивировать интерфейс eth0

#ifconfig eth0 inet 192.168.10.1     
                                          - назначить интерфейсу eth0 IP-адрес 192.168.10.1

#ifconfig eth0 hw ether 00:e1:12:56:19:b2
                               - назначить интерфейсу eth0 MAC-адрес 00:e1:12:56:19:b2


#ifconfig eth0 netmask 255.0.0.0    
                               - назначить интерфейсу eth0 маску подсети 255.0.0.0



Сделанные таким способом настройки сбрасываются после ребута. На постоянку их можно прописать в /etc/network/interfaces:
 
auto lo
iface lo inet loopback
 
# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.10.1
        hwaddress ether 00:e1:12:56:19:b2
        netmask 255.0.0.0
        network 192.168.10.0
        broadcast 192.168.10.255
        gateway 192.168.10.2
        dns-nameservers 192.168.10.3, 192.168.10.4
 
# The secondary network interface
auto eth1
iface eth1 inet dhcp
 
Я думаю здесь всё понято. Адрес DNS сервера можно задать здесь или в  /etc/resolv.conf так:

nameserver 192.168.10.3
nameserver 192.168.10.4

Для вступления изменений в силу ребутим сетевые службы:

#/etc/init.d/networking restart

понедельник, 6 февраля 2012 г.

Обновление Ubuntu 9.10 до 10.04

Столкнулся недавно с такой вот проблемой: Обновление Ubuntu 9.10 до 10.04.

Собственно, казалось бы, чего проще - запустил update-manager, настроил обновления релиза и будет тебе счастье... А нет! Компания Canonical официально прекратила поддержку Ubuntu 9.10 и все бы нечего, но для обновления релиза необходимо предварительно обновить все установленные пакеты до последней версии. Вот тут и случилась незадача. Давно я систему не обновлял(

Но выход есть всегда! Обновление происходит абсолютно без болезненно и без потерь если замутить такой финт:

0. В update-manager удалить из репозитория поддержку CD-ROM и включить в обновления релизы с долговременной поддержкой.


1. Необходимо заменить все директивы файлов /etc/apt/sources.list и /etc/apt/apt.conf.d/50unattended с «karmic» на «lucid»:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
sudo sed -i 's/karmic/lucid/g' /etc/apt/sources.list
2. Запустить update-manager: обновить список пакетов и запустить обновление системы.