Шукати в цьому блозі

середу, 16 березня 2016 р.

Debian: встановлення Adobe Reader

Завантажуємо Adobe Reader 9.5.5 enu (AdbeRdr9.5.5) і встановлюємо acroread.
wget http://ardownload.adobe.com/pub/adobe/reader/unix/9.x/9.5.5/enu/AdbeRdr9.5.5-1_i386linux_enu.deb
sudo aptitude install gdebi
sudo gdebi AdbeRdr9.5.5-1_i386linux_enu.deb
acroread
Варто зауважити, що Adobe припинила випуски та підтримку acroread-ера для Linux.

понеділок, 14 березня 2016 р.

Gnome3 - іконки на робочій стільниці

Як можна помітити, то за замовченням gnome3 не висвітлює на робочій стільниці жодних іконок. Але цю поведінку можна змінити.
Для цього нам знадобиться… правильно - консоль!
Запустимо gsettings та збережемо, про всяк випадок, всі поточні налаштування:
gsettings list-recursively | tee gsettings.keys.bak
Що ж до задачі висвітлення іконок на робочій стільниці gnome3 нас цікавлять:
gsettings get org.gnome.desktop.background show-desktop-icons
gsettings get org.gnome.nautilus.desktop volumes-visible
Ключ show-desktop-icons у схемі org.gnome.desktop.background та ключ volumes-visible у схемі org.gnome.nautilus.desktop треба встановити у значення true щоб отримати бажаний результат.
# show files on desktop
gsettings set org.gnome.desktop.background show-desktop-icons true

# show shares on desktop
gsettings set org.gnome.nautilus.desktop volumes-visible true

# restart nautilus
nautilus -q
nautilus
Створювати та редагувати посилання до додатків можна за допомогою додатку gnome-desktop-item-edit.

Gnome3 - початковий автоматичний запуск додатків

При спробі знайти засіб для налаштування автоматичного запуску додатків при вході у gnome3 google наполегливо відсилає нас на сторінки де рекомендується застосувати
gnome-session-properties
але треба зауважити, що цей додаток є застарілим. Замість нього можна використати
gnome-tweak-tool
де можна перейти у пункт "Початкові програми". Але, завжди є але. А якщо хочеться додати те чого немає у наданому меню? Тоді все також доволі просто - консоль! Переходимо у
cd .config/autostart/
і створюємо desktop-файл з описом додатка. Наприклад - xkb-lang.desktop:
[Desktop Entry]
Exec=/home/olden/bin/xkb-lang.sh
Hidden=true
Name=XKB-Lang
Icon=xterm
Terminal=false
Type=Application
X-GNOME-Autostart-enabled=true
Якщо після цього зайти у gnome-tweak-tool то можна побачити, що цей додаток буде відтворюватись у меню "Початкових програм" і, відповідно, буде запускатися при вході у gnome3.

пʼятницю, 11 березня 2016 р.

bash та sin, cos, тощо…

Рецепти для bash-а. Може кому знадобиться, от як мені…
function sin(){ echo "scale=10; s($1*a(1)/45);" | bc -l; }
function cos(){ echo "scale=10; c($1*a(1)/45);" | bc -l; }
function tan(){ echo "scale=10; arg=$1*a(1)/45; s(arg)/c(arg);" | bc -l; }
function ln(){ echo "scale=10; l($1);" | bc -l; }
function log(){ echo "scale=10; l($1)/l(10);" | bc -l; }
Правда народ ще більше страждає… ряди розписує:
function sin()
{
  if [ $# != 2 ]
  then
    echo "FAIL" >&2
    return 2
  fi

  result=$1
  x=$1
  n=1
  fact=1
  for k in `seq 2 $2`
  do
    x=$(( $x * $1 * $1 ))
    n=$(( $n + 2 ))
    fact=$(( (-1.0) * $fact * ($n - 1) * $n ))
    result=$(( $result + $x / $fact ))
  done
  echo $result
}

Debian: перехід з network interfaces на network-manager та налаштування vlan-ів.

Нещодавно все ж таки оновив wheezy на jessy і так сталося, що аж закортіло поміняти звичні налаштування у /etc/network/interfaces на те, що прпонує network-manager.

Раніше (давно, ой як давно) від цього кроку суттєво стримала відсутність підтримки vlan (чи то просто не помічав?). Але цього разу помітив її у gui від gnome, і вирішив більш досконало покопатися та зрозуміти що до чого, якщо захочеться лапками підправити.

Для початку, наш погляд має змінити напрямок з /etc/network/ на /etc/NetworkManager/, саме в останній директорії знаходяться всі налаштування щодо network-manager-а.

Головний файл налаштувань NetworkManager.conf залишився таким яким був за-замовченням. Найбільш цікаво це налаштування інтерфейсів. Інтерфейси описуються тут /etc/NetworkManager/system-connections, окремими файлами. Так, так, коли інтерфейси описується у gui network-manager-а то зберігаються вони саме тут.

Але від слів до діла. Припустимо, що нам треба налаштувати vlan7 зі статичною ip-адресою.

От як це виглядало б у interfaces:
auto vlan7
iface vlan7 inet static
        vlan_raw_device eth0
        address 93.124.120.14
        netmask 255.255.255.240
        gateway 93.124.120.1
        network 93.124.120.0
        broadcast 93.124.120.15
От як ті самі налаштування виглядатимуть у network-manager-і, додаємо файл /etc/NetworkManager/system-connections/vlan7 наступного змісту:
[connection]
id=VLAN7
uuid=6b5a8896-a4ab-4993-82b0-ce6739e389b7
interface-name=vlan7
type=vlan
timestamp=1457621961

[ipv6]
method=auto
ip6-privacy=0

[vlan]
interface-name=vlan7
parent=eth0
id=7

[ipv4]
method=manual
dns=211.89.160.2;211.89.160.8;
address1=93.124.120.14/28,93.124.120.1
Так, писати, якщо це робити вручну, стало трішки більше.
Що ми зробили? Описали секції для інтерфейсу за яким здійснюється з'єднання (connection), опції протоколів ipv6 та ipv4, та секцію яка описує наш vlan.

uuid у секції connection можна згенерувати за допомогою uuidgen (пакет uuid-runtime), він має бути унікальним.

Цікавим моментом є те, що до налаштувань можна одразу додати інформацію щодо маршрутів. Трішки змінимо секцію ipv4:
[ipv4]
method=manual
dns=211.89.160.2;211.89.160.8;
address1=93.124.120.14/28,93.124.120.1
route1=172.16.1.0/29,93.124.120.2
route2=10.254.0.0/16,93.124.120.2
route3=10.255.0.0/16,93.124.120.2
Тепер, наш хост знає, що шукати мережі 172.16.1.0/29, 10.254.0.0/16 та 10.255.0.0/16 треба не по маршруту за-замовченням, а через інший хост 93.124.120.2, який входить до мережі 93.124.120.0/28.

Ніякої потойбічної магії. Всі опції та поля задокументовані і не є якоюсь таємницею.

Останнє, у тому випадку якщо зміни які було внесено через gui одразу ж не застосовуються, треба просто переініціалізувати відповідний сервіс:
sudo service network-manager force-reload
От і все. Не настільки загадково, як здавалося на перший погляд ;)

середу, 9 березня 2016 р.

Debian Upgrade та повне відновлення KDE або Gnome

Нарешті оновився з wheezy на jessie, але при цьому повністю за залежностями зламався kde. Постало питання, а як же оновити kde та/або gnome якщо вони "зламалися"?
Відповідь, як завжди, лежить у Debian Wiki.
sudo aptitude install ~t^desktop$ ~t^kde-desktop$
sudo tasksel -t install gnome-desktop
sudo aptitude -q --without-recommends \
    -o APT::Install-Recommends=no -y \
    install ~t^desktop$ ~t^gnome-desktop$
Для KDE можна спробувати щось на кшталт такого як і для Gnome:
sudo tasksel -t install kde-desktop
sudo aptitude -q --without-recommends \
    -o APT::Install-Recommends=no -y \
    install ~t^desktop$ ~t^kde-desktop$

понеділок, 7 березня 2016 р.

Тестування SMTP та ESMTP через telnet

SMTP (Simple Mail Transfer Protocol, Простий Протокол Пересилання Пошти) - це протокол, який використовується для пересилання електронної пошти до поштового сервера або з клієнта-комп'ютера, або між поштовими серверами. В IANA для SMTP зареєстрований порт 25. SMTP з'єднання де застосовується SSL шифрування використовують порт 465. Формально SMTP визначений в RFC 821 (STD 10) та покращений RFC 1123 (STD 3) розділ 5. Протокол, який використовується зараз, також відомий як ESMTP і визначений в RFC 2821.

Окрім з'єднань між MTA (Mail Transfer Agent), зі сторони клієнта з'єднатися з smtp-сервером можна як за допомогою налаштованого MUA (Mail User Agent) так і за допомогою telnet на 25/tcp порт. Щоб швидко перевірити чи smtp-сервер взагалі слухає та хоч якось працює останнього цілком достатньо.

Перевіряємо SMTP.
telnet сервер 25
Після того як з'єднання з smtp-сервером буде встановлено і отримаємо привітання, щось на кшталт
220 smtp.server.com, ESMTP
Можна спробувати ввести одна за одною наступні smtp-команди:
HELO localhost
MAIL FROM: <sender@server.com>
RCPT TO: <user1@server.com>
RCPT TO: <user2@server.com>
DATA
From: Sender <sender@server.com>
To: Receiver1 <user1@server.com>
To: Receiver2 <user2@server.com>
Subject: Test SMTP
Content-Type: text/plain

Hi!
Test SMTP.

.
QUIT
Варто зауважити, що якщо ви не є визнаним користувачем smtp-сервера (наприклад, абонентом провайдера до smtp-сервера якого хочете отримати доступ) то smtp-сервер може або не прийняти з'єднання або ж на будь-якому етапі перервати його, якщо таку дію налаштовано задля забезпечення унеможливлювання пересилання спаму.

Іноді, але не завжди, smtp-сервера для своїх користувачів надають можливість надсилати пошту з будь-якої частини Мережі, за умови позитивного проходження аутентифікації. Аутентифікація є розширенням до протоколу SMTP. Для її перевірки попередньо знадобиться виконати дві команди: перша ідентифікую користувача сервера, друга його пароль:
~$ perl -MMIME::Base64 -e 'print encode_base64("sender\@server.com");'
c2VuZGVyQHNlcnZlci5jb20=
~$ perl -MMIME::Base64 -e 'print encode_base64("pa\$\$w0rd");'
cGEkJHcwcmQ=

Після цього можна спробувати поспілкуватися з smtp-сервером і спробувати авторизуватися:
EHLO localhost
AUTH LOGIN
c2VuZGVyQHNlcnZlci5jb20=
cGEkJHcwcmQ=
MAIL FROM: <sender@server.com>
RCPT TO: <user1@server.com>
RCPT TO: <user2@server.com>
DATA
From: Sender <sender@server.com>
To: Receiver1 <user1@server.com>
To: Receiver2 <user2@server.com>
Subject: Test SMTP
Content-Type: text/plain

Hi!
Test Auth.

.
QUIT

Замість AUTH LOGIN до речі можна використовувати й AUTH PLAIN чи, наприклад, AUTH CRAM-MD5, якщо це підтримується сервером і якщо знаєте як цим користуватися.

Варто також зауважити, що у наведених прикладах localhost варто замінити на реальне ім'я своєї системи, а у полях from та to вказувати реальних користувачів, інакше сервер легко може сприйняти вас за спамера і, відповідно, заблокувати відправлення пошти.