пятница, 31 января 2014 г.

Linux зависание при выключении или перезагрузке Ubuntu

При корректном выключении или перезагрузке появляется заставка Ubuntu и на этом происходит зависание. Лечится таким образом. Читаем Grub2, находим пункт
Fixing reboot/shutdown freezes и выполняем sudo gedit /etc/default/grub
В строку GRUB_CMDLINE_LINUX_DEFAULT добавляем reboot=bios т.е. будет такого вида
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash reboot=bios" 
далее
sudo update-grub
и перезагружаемся. В моем случае помогло.

четверг, 30 января 2014 г.

Linux устанавливаем нужное разрешение экрана

Если быстро погуглить, то стандартные команды для изменения разрешения монитора на то, которого нет в перечне, но точно поддерживается, это:
xrandr
смотрим что в перечне есть, если нужное есть, то
xrandr --output CRT2 --mode 1680x1050
где CRT2 меняете на своё устройство вывода
Но обычно нужного разрешения нет, а надо добавить.
Тогда запускаем для LCD с 2004 года выпуска:
cvt 1680 1050 60
где 1680x1050 нужное нам разрешение 60 частота, или для ЭЛТ:
gtf 1680 1050 60
Основное отличие между cvt и gtf в частоте (для ЭЛТ обычно rate больше 60, а остальное технические отличия которые гуглятся). Получаем Modeline, который можно добавить к перечню поддерживаемых разрешений:
xrandr --newmode "1680x1050_60.00"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync
И заканчиваем установкой нужного разрешения и добавлением скрипта в автозапуск:
xrandr --output CRT2 --mode 1680x1050_60.00
Но не всегда так гладко, бывают и ошибки.

среда, 29 января 2014 г.

Linux установка ATI HD 4xxx на Ubuntu 12.04 LTS

    Необходимо установить Ubuntu на комп с такой видеокартой ATI HD 4670 PCI Express. На сайте AMD говорится, что на Linux драйвера не обновляют. Последние которые есть для нужной мне серии AMD Catalyst™ 13.1 Proprietary Linux x86 Display Driver для Xserver до версии включительно 1.12 и ядра до 3.4. Устанавливал по этой инструкции но не все было как в ней. Опишу установку здесь, чтобы не забыть.

вторник, 28 января 2014 г.

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

Linux Error - debclean: not found, dpkg-buildpackage: not found

При установке драйвера ATI выбираю создание deb файла и получаю в логе ошибку

Package build failed!Package build utility output:
./packages/Ubuntu/ati-packager.sh: 294: ./packages/Ubuntu/ati-packager.sh: debclean: not found
./packages/Ubuntu/ati-packager.sh: 295: ./packages/Ubuntu/ati-packager.sh: dpkg-buildpackage: not found
[Error] Generate Package - error generating package : Ubuntu/precise


Нужно доустановить пакеты:
sudo apt-get install build-essential cdbs dh-make dkms execstack dh-modaliases linux-headers-generic fakeroot


Linux установка менеджера пакетов Synaptic

После установки Ubuntu 12.04 по-умолчанию нет менеджера пакетов Synaptic. Я им привык пользоваться для того чтобы заморозить версию программы, или оттуда удобно чистить старые ядра и доустанавливать headers.
sudo apt-get install synaptic
После этого в установленных программах ищем "менеджера пакетов Synaptic"

Linux дисковод /tmp не готов или отсутствует

Установлена Ubuntu 12.04 LTS. Почищена от ненужных пакетов (LibreCalc и т.д., Games, Ubuntu One, Gwibber, Thunderbird). Произведено обновление пакетов. После перезагрузки при включении появилось сообщение "дисковод /tmp не готов или отсутствует". По совету с ЛОРа помогло:
sudo rm -rf /tmp
sudo mkdir -v /tmp
sudo chmod 1777 -v /tmp

воскресенье, 26 января 2014 г.

Linux просмотр открытых портов

Например:
sudo netstat -lantp | grep <IP>

Параметры:
l - LISTEN
a - все открытые порты
t or u - TCP or UDP
p - подробная инфа с PID и имя процесса
n - DNS-имена заменить на цифровой вид
s - просмотр статистики

или подобная утилита ss для просмотра информации по сокетам, ключи подобны netstat
Потом для настройки iptables смотрим откуда куда и по каким портам идут пакеты:
tcpdump host <IP>  -n

вторник, 21 января 2014 г.

Шифрование одноразовые блокноты OTP (One-time pad)

OTP считается теоретически не взламываемой системой шифрования. Одноразовый блокнот представляет собой список чисел в случайном порядке, используемый для кодирования сообщения. Как видно из названия системы, OTP может использоваться только один раз. Если числа в OTP являются действительно случайными, OTP имеет большую длину, чем сообщение, и используется только один раз, то шифрованный текст не предоставляет какого-либо механизма для восстановления исходного ключа (т. е. самого OTP) и, следовательно, сообщений. Одноразовые блокноты используются в информационных средах с очень высоким уровнем безопасности (но только для коротких сообщений). Например, в Советском Союзе OTP использовался для связи разведчиков с Москвой. Двумя основными недостатками OTP являются генерация действительно случайных блокнотов и проблема распространения блокнотов. Очевидно, что если блокнот выявляется, то раскрывается и та информация, которую он защищает. Если блокноты не являются действительно случайными, могут быть выявлены схемы, которые можно использовать для проведения анализа частоты встречаемых символов.
Сообщение
 S  E  N  D  H  E  L  P 
Соответствующие номера букв в алфавите
19 5 14 4  8  5 1216
Одноразовый блокнот
 7  9  5  2 12 1  0  6 
Сумма номеров букв сообщения + номера букв OPT
261419 6 20 6 1222
Зашифрованное сообщение
 Z  N  S  F  T  F  L  V 

Взято отсюда

среда, 15 января 2014 г.

Linux установка антивируса clamav с GUI (clamtk)

Для проверки виндовых флешек нужен антивирус. В Ubuntu буду использовать clamav c GUI надстройкой clamtk.
sudo apt-get install clamav
sudo freshclam                                  (обновляем антивирусные базы)
sudo apt-get install clamtk       (устанавливаем GUI)

вторник, 14 января 2014 г.

Python однострочник нахождения списка простых чисел от 2 до n (решето Эратосфена)

sorted(set(range(2,n+1)).difference(set((p * f) for p in range(2,int(n**0.5) + 2) for f in range(2,(n/p)+1))))
Взято отсюда

Python нахождение числового палиндрома

"А роза упала на лапу Азора" - палиндром, 131 - числовой палиндром.
Решение: число представляю в виде строки, прохожу по циклу от 0 до половины размера строки и сравниваю последовательно симметрично i и -(i +1). Все одинаковые значения добавляются в список и в конце сравниваю размер списка с половиной размера строки. Если равны - то палиндром.
Дебаг:
x = 1234321
for i in xrange(len(str(x)) // 2):    
    if str(x)[i] == str(x)[-(i + 1)]:
        print str(x)[i] 
Привожу в однострочник:
if len([i for i in xrange(len(str(x)) // 2) if str(x)[i] == str(x)[-(i + 1)]]) == len(xrange(len(str(x)) // 2)):
    print 'Палиндром'

Или красивое решение :)
def isPalindrom(n):
    """
    Check integer for palindrom
    >>> isPalindrom(131)
    True
    >>> isPalindrom(130)
    False
    """
    return str(n) == str(n)[::-1]

понедельник, 13 января 2014 г.

Windows 7 перевод из динамического с зеркалом в базовый без форматирования одного

Задача: есть комп, используемый как сервер, с такой конфигурацией дискового массива - 2 SATA диска по 500Гб, ОС Windows 7 SP1rus, софтовый рейд. Диски динамические, разбиение на тома C - система, D - базы 1С, E - бекап баз + образ делается стандартным архивированием семерки. Диски полностью в зеркале, т.е. на всех томах зеркало (в том числе и на скрытом томе с конфигурацией хранилища загрузки BCD). Нужно изъять один диск из массива и перевести динамический в базовый. Один диск с рабочей копией системы с базами и архивом будет хранится до востребования, а комп будет использоваться как пользовательский без функции сервера. Стандартное решение Windows - это один диск будет очищен,  а второй будет переведен в базовый. Хочется два базовых идентичных.

воскресенье, 12 января 2014 г.

Шифр Viginer (16 век, Рим)

Выбирается ключ, например слово CRYPTO . Записывается фраза, которую надо зашифровать WHAT A NICE DAY TODAY только без пробелов, и настолько же букв, сколько в фразе, записывается повторяясь ключ. Потом формируется зашифрованная фраза суммой по модулю 26. Сумма по модулю 26 это значит остаток от деления нацело на 26 суммы (a + b) % 26, где a, b - порядковые номера букв в алфавите. Например: (23(W) + 3(C)) % 26 = 26(Z), или (20(T) + 16(P) % 26 = 36 % 26 = 10(J).

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

W H A T A N IC E D A Y T O D A Y
C R Y P T O C R I P T O C R I P T
Z Z Z J U C L U D T U N W G C Q S


пятница, 3 января 2014 г.

Linux поддержка exFAT

exFAT - проприетарная файловая система от Microsoft, предназначенная для флэш-накопителей. Основное её преимущество перед FAT - уменьшение количества перезаписей одного и того же сектора. Ubuntu изначально не поддерживает файловую систему exFAT, поскольку её разрабатывала Microsoft, и поставляется данная файловая система с ограниченной лицензией, которая не позволяет операционным системам с открытым исходным кодом встраивать её поддержку изначально. 

Но можно добавить поддержку exFAT в Ubuntu.