← All posts tagged Linux

У меня ранее сервер рассылал уведомления по почте через ssmtp. Для того чтобы всё было красиво, bash скрипт формировал из шаблонов письмо и скармливал его программе, а та дописывала что нужно и слала на сервер. И вот вчера у меня дошли руки прикрутить к этому PGP. Выяснила, как (с какими параметрами) Бэки вызывает GnuPG для подписи и шифрования письма и что скармливает ему. Ну и повторила, наделав дополнительных шаблонов. Правда, случился затык, над которым я просидела всю ночь. Если письмо формировалось с переносами в виде LF (в, собственно, Баше), то подпись всегда оказывалась невалидной. Но если сделать всё то же самое ручками и с CRLF, то всё прекрасно работало. Собственно, Бэки как раз CRLF скармливала GnuPG, а тот в Windows тоже выдавал CRLF в текстовых файлах. Но мне-то нужно под Линуксом. В итоге остановилась на флаге «--textmode», который позволяет игнорировать разные варианты переносов. Но до причины странного поведения я так и не докопалась. В Linux GnuPG выдаёт те же файлы с LF, и разные варианты переносов нигде не перемешиваются =_=

Наконец на DigitalOcean старым дроплетам разрешили самим выбирать себе ядро. А то на более новом ядро было всегда свежее, а на более старом всё, что удалось найти в вэб-морде самого DO. И тьюториал выкатили, который всё прояснил:
digitalocean.com
Хотя могли бы прямо в настройках заметку написать про старые и новые дроплеты =_=

Кстати об окончательной победе юникода в лице UTF-8 в линупсе. Мне постоянно попадаются программы, которые пытаются сокращать те или иные строки, чтобы те влезали в экран, но при этом рубят текст прямо по парам. В итоге получаем кусок нормального текста с крякозяброй на конце. В GUI кроме крякозябры никаких неудобств не наблюдается, а в консоли иногда весь интерфейс корёжит. Например, меня задолбал tmux, который пытается в строке состояния выводить «заголовок» программы, запущенной в текущем окне. Если в этом заголовке кириллица, то крякозябра, строка состояния на две строки (последний символ переносится) и, как возможность, – сама перекошенная программа. Например, ncmpcpp очень страдает от этого до полной неюзабельности. Считаю это следствием пофигизма, распиздяйства и всепоглощающей философии «UTF-8 – есть разновидность ANSI» (от которой ещё и порты программ под Windows страдают).

Неожиданно вспомнила, что есть моя программа Fix system time, которая писалась для того, чтобы фиксить время на одной машине, на которой оно слетало (лень было заменить батарейку) настолько капитально, что встроенный NTP клиент отказывался синхронизировать. Использует функцию NetRemoteTOD() для получения времени на удалённой машине, а потом SetSystemTime() с полученными данными. Дёшево и сердито. Так вот оказалось, что если на Линуксе есть Самба, то и с него можно брать время. Поэтому надо будет попробовать максимально костылизированный вариант.
1. На Линуксе вырубает ntpd, а вместо него ничем память не грузим.
2. Там же в кроне делаем «ntpdate -u».
3. На Windows вырубаем службу времени.
4. В планировщике заданий делаем «FixSystemTime.EXE».
И усё.

Продолжаю воевать с синхронизацией времени. Зашла со стороны Линукса. ntpdate говорит, что подходящие серверы не найдены. Решила посмотреть, что у него там за параметры – вдруг лог какой покажет. Нашла параметр «-d», который выводит отладочную информацию. Смотрю, а в отладочной информации, а там ответы серверов, разница во времени, всё прекрасно. Пробую снова – не синхронизируется. Ладно, читаю дальше. Пробую таймаут – не помогает. Нашла параметр «-u», который заставляет использовать некие «unprivileged ports» на случай злого файрволла. Попробовала – всё прекрасно синхронизировалось. Теперь меня мучают вопросы: 1) какие именно порты используются в обоих случаях, 2) как обучить ntpd использовать такой же «unprivileged port», 3) не заюзать ли лучше ntpdate через cron, и 3) как заставить Windows делать то же самое?

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

При воспроизведении музыки в mpd, в других программах звук не воспроизводится, ставится в очередь, а потом, после остановки воспроизведения в mpd, пачкой выдаётся. В syslog пишется это:
pulseaudio[2177]: [alsa-sink-ALC888 Analog] alsa-sink.c: Error opening PCM device front:0: Устройство или ресурс занятоХммм...

В сетевом программном обеспечении Samba обнаружена критическая уязвимость 7-летней давности, обеспечивающая возможность удалённого выполнение кода. Эта брешь может позволить злоумышленнику взять под контроль уязвимые машины Linux и Unix.!
Недавно обнаруженная уязвимость удаленного выполнения кода (CVE-2017-7494) затрагивает все версии новее, чем Samba 3.5.0, которая выпущена 1 марта 2010 года.!!!
The following packages will be upgraded:
libjbig2dec0 libminiupnpc8 libsmbclient libwbclient0 python-samba samba
samba-common samba-common-bin samba-dsdb-modules samba-libs
samba-vfs-modules smbclient
Уф!
Но как насчёт GoFlex Home, который сто лет уже не обновляется, а если и обновляется, то какими-то стрёмными блобами без каких-либо данных?
bash-3.2# smbd --version
Version 3.0.28-0.el5.8.oe5
Old is gold!

Подумалось вдруг мне, а вдруг я зря качу бочку на Viewnior? Ведь кто-то старался, переписывал eog (он же oem), приводил в божеский вид... В общем, поставила, запустила и поняла: IrfanView теперь точно крышка.
1. Интерфейс упросили – молодцы, правда, даже с выключенными тулбарами и менюшками для картинки остаётся маловато места.
2. Программа научилась ресамплингу картинок, заодно заметно прибавив в скорости загрузки. Ладно, это окей, хотя IV всё равно умудряется делать это быстрее.
3. Выкинули ненужные фичи. Например, безжалостно избавились от привносящей тормоза настройки цвета фона окна.
4. В программе есть открытие картинок в некоем «умном режиме». В чём заключается этот ум, я так и не поняла, но поведение от eog отличается чуть менее, чем ничем.
Поскольку последнее относится к центровому функционалу просмотрщиков картинок, расскажу я, как это выглядит.
Допустим, открываю я картинку 5000x12000. Умная программа понимает, что картинка не лезет на весь экран и ужимает её, подгоняя под габариты своё окно. Но что это? Почему сверху и снизу окна такие здоровые пустоты? Почему окно не занимает максимум экранного места по вертикали? Что это за просмотрщик, в котором картинку плохо видно?
Ладно, разглядела. Жму стрелочку или пробел. А следом идёт картинка 12000x5000. Умный просмотрщик понимает, что картинка не лезет... во всё окно, и вписывает микроскопическую картинку в вертикальный прямоугольник.
И так постоянно. Если повезёт открыть картинку правильных пропорций первой, то можно даже не разворачивать ручками окно на весь экран (или искать, как без мыши врубить полноэкранный режим, но не врубать при этом слайдшоу).
И ладно если бы такая фигня была только у этих трёх мутантов! Оно же поголовно!

Неожиданно заработал Вайн и мои программы под ним. Выглядит страшненько, но хоть что-то. Заодно почти решила проблему отсутствия нормальных просмотрщиков картинок под Линуксом, запустив там IrfanView. Теперь бы ещё понять, как сделать так, чтобы имя файла в командной строке программы приводилось к виндовому виду.

Есть папка на NAS, доступная через самбу. В папке несколько подкаталогов, в каждом из которых файлы.
Windows, FAR:
6'471'441'617 байтLinux на NAS, «du --bytes»:
6472973521Linux Mint, gvfs, «du --bytes»:
6471441617А без «--bytes» ещё веселее. Такой засады я не ожидала!