gladilov.org.ru gladilov.org.ua

106 заметок с тегом

сисадминство

Всякие системные и просто нужные компьютерные фичи. Настройка софта, иногда восстановление железа, и прочее, что входит в сферы интересов от эникейшика до «full stack admin’а». В придачу — симулятор системного администратора.



Позднее Ctrl + ↑

Компания Paragon открыла код реализации ФС exFAT

Компания Paragon Software, поставляющая лицензированные в Microsoft проприетарные драйверы NTFS и exFAT для Linux, опубликовала в списке рассылки разработчиков ядра Linux начальную реализацию нового открытого драйвера exFAT. Код драйвера открыт под лицензией GPLv2 и временно ограничен работой в режиме только для чтения. В разработке находится вариант драйвера, поддерживающий режим записи, но он ещё не готов для публикации.

Компания Paragon Software приветствовала действия Microsoft по публикации общедоступных спецификаций и предоставления возможности безвозмездного использования патентов на exFAT в Linux, и в качестве своего вклада подготовила открытый драйвер exFAT для ядра Linux. Отмечается, что драйвер оформлен в соответствии с требованиями по подготовке кода для Linux и не содержит привязок к дополнительным API, что позволяет включить его в основной состав ядра.

Показать

В августе в экспериментальный раздел «staging» ядра Linux 5.4 («drivers/staging/»), куда помещаются компоненты требующие доработки, уже добавлен разработанный компанией Samsung открытый драйвера exFAT. При этом добавленный драйвер основан на устаревшем коде (1.2.9), требующем доработки и адаптации к требованиям по оформлению кода для ядра. Позднее для ядра был предложен обновлённый вариант драйвера Samsung, переведённый на ветку «sdFAT» (2.2.0) и демонстрирующий существенный прирост производительности, но данный драйвер пока не принят в состав ядра Linux.

Файловая система exFAT была создана Microsoft для устранения ограничений FAT32 при использовании на Flash-накопителях большого объема. Поддержка файловой системы exFAT появилась в Windows Vista Service Pack 1 и Windows XP с Service Pack 2. Максимальный размер файла по сравнению с FAT32 был расширен с 4 Гб до 16 эксабайт, устранено ограничение на максимальный размер раздела в 32 Гб, для уменьшения фрагментации и увеличения скорости введена битовая карта свободных блоков, ограничение на число файлов в одной директории поднято до 65 тыс., предусмотрена возможность хранения ACL.

Источники:
https://www.opennet.ru/opennews/art.shtml?num=51724
https://lkml.org/lkml/2019/10/18/808

2019   в мире   досуг   интересное   сисадминство   события   софт

Подбор хэшей паролей основателей Unix

В опубликованных в открытом доступе дампах исторических срезов с кодом BSD 3 в том числе присутствует и файл /etc/passwd с хэшами паролей основателей Unix. Так как пароли хэшированы методом DES, который для современной вычислительной техники не представляет проблем с подбором, энтузиасты попытались восстановить пароли, используемые основателями Unix.

Пароли почти всех основателей Unix были подобраны почти сразу. Например, пароль Брайна Кернигана представлял собой легко набираемую комбинацию «/.,/.,,», пароль Денниса Ритчи был «dmac», Кирка МакКузика — «foobar», а Стивена Борна — «bourne».

Исключение составил пароль Кена Томпсона. В 2014 году после нескольких дней вычислений пароль остался не подобранным. Несколько дней назад была предпринята ещё одна попытка и после более 4 дней подбора с использованием hashcat на системе с видеокартой AMD Radeon Vega64 пароль удалось определить (производительность подбора составила 930 миллионов хэшей в секунду). Пароль оказался «p/q2-q4!». Любители шахмат определили, что это начало ряда шахматных дебютов в описательной нотации. Кен Томпсон подтвердил данное предположение.

Источники:
https://leahneukirchen.org/blog/archive/2019/10/ken-thompson-s-unix-password.html
https://www.opennet.ru/opennews/art.shtml?num=51643
https://habr.com/ru/post/470966/

2019   в мире   досуг   интересное   ОС   сисадминство

Леннарт ’мать его’ Поттеринг представил systemd-homed

Леннарт Поттеринг (Lennart Poettering) на конференции All Systems Go 2019 представил новый компонент системного менеджера systemd — systemd-homed, нацеленный на обеспечение переносимости домашних каталогов пользователей и их отделения от системных настроек. Основная идея проекта в создании самодостаточных окружений для данных пользователя, которые можно переносить между разными системами, не заботясь о синхронизации идентификаторов и конфиденциальности.

Окружение домашнего каталога поставляется в форме монтируемого файла-образа, данные в котором зашифрованы. Параметры учётных данных пользователя привязаны к домашнему каталогу, а не к системным настройкам — вместо /etc/passwd и /etc/shadow используется профиль в формате JSON, хранимый в каталоге ~/.identity. В профиле указаны параметры, необходимые для работы пользователя, включая данные об имени, хэше пароля, ключах для шифрования, квотах и предоставляемых ресурсах. Профиль может быть заверен цифровой подписью, хранимой на внешнем токене Yubikey.

Показать

Параметры также могут включать дополнительные сведения, такие как ключи для SSH, данные для биометрической аутентификации, изображение, email, адрес, часовой пояс, язык, лимиты на число процессов и память, дополнительные флаги монтирования (nodev, noexec, nosuid), данные о применяемых пользователем серверах IMAP/SMTP, информация о включении родительского контроля, параметры резервного копирования и т. п. Для запроса и разбора параметров предоставляется API Varlink.

Назначение и обработка UID/GID производится динамически в каждой локальной системе, к которой подключается домашний каталог. При помощи предложенной системы пользователь может держать свой домашний каталог при себе, например на Flash-накопителе, и получать рабочее окружение на любом компьютере без явного заведения на нём учётной записи (наличие файла с образом домашнего каталога приводит к синтезу пользователя).

Для шифрования данных предлагается использовать подсистему LUKS2, но systemd-homed также позволяет использовать и другие бэкенды, например, для незашифрованных каталогов, Btrfs, Fscrypt и сетевых разделов CIFS. Для управления переносимыми каталогами предложена утилита homectl, которая позволяет создавать и активировать образы домашних каталогов, а также изменять их размер и задавать пароль.

На уровне системы работа обеспечивается следующими компонентами:
systemd-homed.service — управляет домашним каталогом и встраивает JSON-записи напрямую в образы домашнего каталога;
– pam_systemd — обрабатывает параметры из JSON-профиля при входе пользователя и применяет их в контексте активируемого сеанса (проводит аутентификацию, настраивает переменные окружения и т. п.);
– systemd-logind.service — обрабатывает параметры из JSON-профиля при входе пользователя, применяет различные настройки управления ресурсами и выставляет лимиты;
– nss-systemd — модуль NSS для glibc, синтезирует классические записи NSS на основе JSON-профиля, предоставляя обратную совместимость с UNIX API для обработки пользователей (/etc/password);
– PID 1 — динамически создаёт пользователей (синтезирует по аналогии с применением директивы DynamicUser в unit-ах) и делает их видимыми для остальной системы;
– systemd-userdbd.service — транслирует учётные записи UNIX/glibc NSS в записи JSON и предоставляет унифицированный API Varlink для запроса и перебора записей.

Из достоинств предложенной системы отмечается возможность управления пользователями при монтировании каталога /etc в режиме только для чтения, отсутствие необходимости синхронизации идентификаторов (UID/GID) между системами, независимость пользователя от конкретного компьютера, блокировка данных пользователя во время перехода в спящий режим, применение шифрования и современных методов аутентификации. Systemd-homed планируется включить в основной состав systemd в выпуске 244 или 245.

Видео

На Опёнке сразу забурлили, вот несколько комментариев с противоположными мнениями: Показать



Объясните недалёкому, для чего нужен systemd-homed?


– Для корпораций, в будущем твой домашний каталог будет на их серверах в облаке, а локальный компьютер будет тивоизирован и у тебя не будет к нему root доступа.


– Потому что это только в убогой винде все настройки лежат кучкой, в папке c:\windows\system32\config и ещё шести файлах профиля, которые суммарно составляют «реестр Windows». В гениальной же Linux настройки равномерно размазаны тонким слоем по всей системе. И если пользователь захочет просто скопировать окружение на другой комп, он затрахается собирать конфиги по всему диску, ибо где только они не разбросаны... Разве что в своп-разделе нет, и то ещё не уверен — не удивлюсь, если есть и такие компоненты системы, которые их даже там хранят.
Вот для того, чтоб прошерстить весь диск и собрать всё это барахло в единую кучку, и предназначена данная штука.


– что бы когда будет нужно (уже не в столь далёком будущем), отправить «товарищу майору» (или сэру мэйджору?) всё, что можно найти в «домике». Естественно, предварительно открыв канал через уже придуманный systemd. А кто не согласится — отключим газ. Ну или комп. Или хотя бы домик — что бы доказуху не потёрли.
Чует моё сердце, что этот sd довром не кончится — нас ждут весёлые времена и масса открытий. И, возможно, в самое ближайшее время.

Источник

2019   Linux   в мире   досуг   интересное   сеть   сисадминство   события   софт

Загадочные BogoMIPS’ы

Давно хотел сделать статейку о том, что такое BogoMIPS’ы. Наконец руки дошли и до этого

Когда-то в юнлсти я обратил внимание на то, что при начальной загрузке ядра Linux выдаётся сообщение примерно такого вида:

Calibrating delay loop… 1699 BogoMIPS

Оказывается, в ядре Линукс — это способ измерения оценки скорости исполнения процессорных инструкций на компьютере, он предназначен для калибровки внутренних циклов ядра.

Теория: Показать

BogoMIPS’ы можно определить как «число миллионов раз в секунду, когда процессор может ничего не делать» («the number of million times per second a processor can do absolutely nothing»).

Это собственное изобретение Линуса. В версии ядра 0.99.11 от 11 июля 1993 года была нужда в цикле синхронизации для калибровки скорости процессора компа. Поэтому во время загрузки ядро ​​измеряет, насколько быстро на компьютере выполняется определенный цикл. Приставка «Bogo» происходит от слова «bogus» (англ. «фальшивка», «подделка»). Поэтому значение BogoMIPS’ов даёт некоторое представление о скорости процессора, но при этом это значение очень ненаучно. Вывод этого значения был немного полезен для отладки и проверки работоспособности кэшей компьютеров и работы кнопки «Турбо» (когда она ещё была на системниках).

BogoMIPS’ы определены в /usr/src/linux/init/main.c, где описан простой алгоритм на C, с хорошим примером арифметики с плавающей запятой в полностью целочисленном ядре, соответствующая переменная ядра loops_per_sec используется в нескольких драйверах для более серьёзной работы. Фактически функция задержки udelay() написана на ассемблере, поэтому каждый порт на другую архитектуру имеет собственное определение в /include/asm/delay.h. При этом, переменная loops_per_sec и функция udelay() используются во многих драйверах, посмотреть это можно так:

cd /usr/src/linux
find . -name '*.[hcS]' -exec fgrep loops_per_sec {} /dev/null \;
find . -name '*.[hcS]' -exec fgrep udelay {} /dev/null \;

Цикл расчёта BogoMIPS’ов для процессоров с не Intel-архитектурой похож, но не всегда, так как он пишется на другой реализации языкя ассемблера.

Методов определения богомипсов три:

  1. (самый предпочтительный) просмотр в /proc/cpuinfo (например так:
cat /proc/cpuinfo | grep -i bogomips

  1. просмотр вывода системного журнала для контроля, что было напечатано во время загрузки (с помощью dmesg или syslogk). Иногда информация всё ещё может находиться на загрузочной консоли.
  2. (рекомендуется только для не Linux-систем) используя отдельную программу bogomips..

Теперь практика. Действующие, гм..., лица и устройства: Показать

Тип Сетевое имя Бренд, Модель
/Аппаратная ревизия
ОС
(прошивка)
Процессор ОЗУ
Компьютер soulhome  Debian 10 Intel Celeron G1610@2.6ГГц 16Гб
VPS-сервер gor QEMU/KVM  Debian 9 Intel Celeron@2.1ГГц 1Гб
Нетбук asus4g Asus Eee PC 4G (701)  Debian 9 Intel Celeron M ULV 353@900МГц,
работает на частоте 630МГц
2Гб
Маршрутизатор hive D-Link DIR-320/A2E  DebWRT Broadcom BCM3302 v2.9@240МГц 32Мб
IPTV STB-приставка x96mini DQiDianZ X96 mini  armbian 5.67 Amlogic S905W, 4xARM Cortex-A53@1,5ГГц 2Гб
Маршрутизатор linksys Linksys WRT300N/1.1  DD-WRT v24-sp2 mega v1.51.2 Broadcom BCM4705L@300МГц 32Мб
Маршрутизатор midge Edimax BR-6104KP/1.3.r510  flyrouter3-office_usb ADMtek 5120P@170МГц 16Мб
Маршрутизатор tplink TP-Link TL-WR841ND/8.1  OpenWRT Attitude Adjustment 12.09, r36088 Atheros AR9341@535МГц 32Мб
IPTV STB-приставка mag250 TeleTec MAG-250 Micro  0.2.18-r22-250 STMicroelectronics STi7105@450МГц 256Мб
Смартфон k3note Lenovo K3 Note  Android 5.1 MediaTek MT6752, 8xARM Cortex-A53@1,7ГГц 2Гб
Маршрутизатор gw D-Link DIR-300/A/C1E  2.5.7 Realtek RTL8196C@390МГц 32Мб

На всех (почти) подконтрольных мне домашних железках с ОСью/прошивкой на ядре Linux настроил авторизацию по ключу по протоколу SSH. Кое-где из-за старости и ущербности и отстуствия сорременных алгоритмов обмена ключей прищлось в /~.ssh/config прописать

Host <узел>
    KexAlgorithms +diffie-hellman-group1-sha1

чтобы не писать в командной строке конструкцию вида:

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 <узел> 'cat /proc/cpuinfo | grep -i bogomips && cat /proc/version'

На железках, в которых dropbear кроме motd выдавал ещё и login banner — пришлось пойти на крайние меры путём убийства процесса dropbear и старта его без указания файла с банером, т. е. вместо процесса

dropbear -b /tmp/loginprompt -r /tmp/root/.ssh/ssh_host_rsa_key -d /tmp/root/.ssh/ssh_host_dss_key -p 22

делаю

killall dropbear

и стартую процесс

dropbear -r /tmp/root/.ssh/ssh_host_rsa_key -d /tmp/root/.ssh/ssh_host_dss_key -p 22

Авторизацию по ключу сделал так:

cat ~/.ssh/id_rsa.pub | ssh <узел> 'cat >> .ssh/authorized_keys'

Затем на всех узлах выполнял код

ssh <узел> 'cat /proc/cpuinfo | grep -i bogomips && cat /proc/version'

Полученный результат я свёл на скрин с инфой (1920x1080): Показать

Текстовая расшифровка изображения (вдруг кому пригодится): Показать

soul@soulhome:~$ cat /proc/cpuinfo | grep -i bogomips && cat /proc/version
bogomips        : 5188.12
bogomips        : 5188.12
Linux version 4.9.0-9-amd64 (debian-kernel@lists.debian.org) (gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) ) #1 SMP Debian 4.9.168-1+deb9u5 (2019-08-11)
soul@soulhome:~$ ssh gor 'cat /proc/cpuinfo | grep -i bogomips && cat /proc/version'
bogomips        : 4199.99
Linux version 4.9.0-9-amd64 (debian-kernel@lists.debian.org) (gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) ) #1 SMP Debian 4.9.168-1+deb9u2 (2019-05-13)
soul@soulhome:~$ ssh asus4g 'cat /proc/cpuinfo | grep -i bogomips && cat /proc/version'
bogomips        : 1260.10
Linux version 4.9.0-6-686-pae (debian-kernel@lists.debian.org) (gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) ) #1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07)
soul@soulhome:~$ ssh hive 'cat /proc/cpuinfo | grep -i bogomips && cat /proc/version'
BogoMIPS                : 239.10
Linux version 2.6.34.5 (amain@amain-laptop) (gcc version 4.3.3 (GCC) ) #1 Sun Sep 26 18:20:27 CEST 2010
soul@soulhome:~$ ssh x96mini 'cat /proc/cpuinfo | grep -i bogomips && cat /proc/version'
BogoMIPS        : 48.00
BogoMIPS        : 48.00
BogoMIPS        : 48.00
BogoMIPS        : 48.00
Linux version 5.1.0-rc5-next-20190416-aml-s905-gde3c659c8-dirty (root@vbox) (gcc version 7.4.1 20181213 [linaro-7.4-2019.02 revision 56ec6f6b99cc167ff0c2f8e1a2eed33b1edc85d4] (Linaro GCC 7.4-2019.02)) #5.78 SMP PREEMPT Tue Apr 16 13:56:07 MSK 2019
soul@soulhome:~$ ssh linksys 'cat /proc/cpuinfo | grep -i bogomips && cat /proc/version'
BogoMIPS                : 299.82
Linux version 2.4.36 (root@dd-wrt) (gcc version 3.4.6 (OpenWrt-2.0)) #2827 Thu Jun 19 08:30:07 CEST 2008
soul@soulhome:~$ ssh midge 'cat /proc/cpuinfo | grep -i bogomips && cat /proc/version'
BogoMIPS                : 174.48
Linux version 2.4.32 (builder@work) (gcc version 3.4.5 (ZFT Lab. and FlyRouter Team)) #2 Вто Мар 24 21:44:31 EET 2009
soul@soulhome:~$ ssh tplink 'cat /proc/cpuinfo | grep -i bogomips && cat /proc/version'
BogoMIPS                : 266.64
Linux version 3.3.8 (blogic@Debian-60-squeeze-64-minimal) (gcc version 4.6.3 20120201 (prerelease) (Linaro GCC 4.6-2012.02) ) #1 Sat Mar 23 16:49:30 UTC 2013
soul@soulhome:~$ ssh k3note 'cat /proc/cpuinfo | grep -i bogomips && cat /proc/version'
BogoMIPS        : 26.00
BogoMIPS        : 26.00
BogoMIPS        : 26.00
Linux version 3.10.65+ (buildslave@shws40) (gcc version 4.9 20140514 (mtk-20150408) (GCC) ) #1 SMP PREEMPT Wed Oct 28 14:17:24 CST 2015
soul@soulhome:~$ ssh mag250 'cat /proc/cpuinfo | grep -i bogomips && cat /proc/version'
bogomips        : 444.41
Linux version 2.6.32.59_stm24_0211-MAG250_7105 (dmgrib@Server01.localdomain) (gcc version 4.6.3 20120313 (STMicroelectronics/Linux Base 4.6.3-106) (GCC) ) #41 PREEMPT Thu Jun 8 13:01:38 EEST 2017
soul@soulhome:~$ telnet -E dlink 
Trying 10.9.1.1...
Connected to dlink.
Escape character is 'off'.
                                                                                                                                                                                             
Dlink-Router login: soul                                                                                                                                                                     
Password:                                                                                                                                                                                    
Welcome to                                                                                                                                                                                   
     _______          ___     __  ____   _  _   ___                                                                                                                                          
    |  ___  \        |   |   |__||    \ | || | /  /                                                                                                                                          
    | |   | ||  ___  |   |__  __ |     \| || |/  /                                                                                                                                           
    | |___| || |___| |      ||  || |\     ||     \                                                                                                                                           
    |_______/        |______||__||_| \____||_|\___\                                                                                                                                          
                                                                                                                                                                                                                  
                     = Building Networks for People =                                                                                                                                                             
                                                                                                                                                                                                                  
                                                                                                                                                                                                                                             
                                                                                                                                                                                                                                             
BusyBox v1.19.2 (2016-10-19 16:25:25 MSK) built-in shell (ash)                                                                                                                                                                               
Enter 'help' for a list of built-in commands.                                                                                                                                                                                                
                                                                                                                                                                                                                                             
soul@dlink:$ cat /proc/cpuinfo | grep -i bogomips                                                                                                                                                                                            
BogoMIPS                : 389.12                                                                                                                                                                                                             
soul@dlink:$ cat /proc/version 
Linux version 2.6.30.9 (builder@rd) (gcc version 4.4.5-1.5.5p2 (GCC) ) #1 Wed Oct 19 16:21:12 MSK 2016
soul@dlink:$ exit
Connection closed by foreign host.
soul@soulhome:~$

Источники:
http://tldp.org/HOWTO/BogoMips/index.html
http://www.clifton.nl/bogo-faq.html
https://ru.wikipedia.org/wiki/BogoMIPS

26 июля — День системного администратора 2019

Вот уже 20 лет, в последнюю пятницу июля, по традиции, заведённой ещё 28 июля 1999 года  Тедом Кекатосом (Ted Kekatos), сисадмином из Чикаго, празднуется System Administrator Appreciation Day, или День системного администратора.

С праздником всех причастных! Чтоб бакапы были рабочие! И чтоб они никогда не понадобились! :)

2019   досуг   памятные даты   праздник   сисадминство
2019   в мире   железо   интересное   сисадминство   юмор

Загрузка в графическое окружение или в текстовую консоль

Давно хотел реализовать на рабочей дебиане вариант выбора загрузки (в одной системе) как в графику, так и в текстовую консоль. Но недостаток мозга знаний не позволял это реализовать.

Сначала я по скудоумию копал в сторону передачи параметра загрузки INITLEVEL или RUNLEVEL системе. Пробовал в конце строки загрузки ядра linux добавлять строчку text, но это тоже не сработало. После этого я решился спросить у знакомого админа (очень хорошего админа, Макс — спасибо!)... Он в ответ прислал ссылку на инструкцию, которую я не смог найти на просторах инета ))) И сегодня я наконец-то победил задачу, решение оказалось очень простым.

Описываю процесс (проверил в свежеустановленной виртуалке с Debian 9): Показать

Поставил систему в  ВиртуалБоксе. Установил XFCE4. Продублировал запись о загрузке в /boot/grub/grub.conf, полностью скопировав первый блок menuentry (привожу с сокращениями):

menuentry 'Debian GNU/Linux' {
load_video
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
        echo 'Загружается Linux <версия ядра> …'
        linux /boot/vmlinuz-<версия ядра> root=UUID=<UUID> ro  quiet
        echo 'Загружается начальный виртуальный диск …'
        initrd /boot/initrd.img-<версия ядра>
}

В первом блоке menuentry дополнил название до ’Debian GNU/Linux in text mode’, во втором — до ’Debian GNU/Linux in graphical mode’. Затем в первом блоке в строке загрузки ядра в конце добавил параметр 3, что означает уровень выполнения, в который система прыгает после загрузки. При выборе второго пункта меню система загрузится в обычном режиме, предусматривающем уронь выполнения 5 (графическая консоль), а при загрузке по первому пункту меню (по умолчанию) будет текстовая консоль и уровень выполнения 3.

Загрузочное меню GRUB: Показать

Загрузка в текстовом режиме: Показать

Загрузка в графику: Показать

Затем (так как это тестовая машина) настраиваю автологин и в тексте, и в графике. Для автологина в тексовой консоли в файле /lib/systemd/system/getty@.service прописываю юзера для автологина

ExecStart=-/sbin/agetty --noclear -a <юзер> %I $TERM

Да автовхода в XFCE в файле /etc/lightdm/lightdm.conf указываю

autologin-user=<юзер>
autologin-user-timeout=0

Источники:
Настройка GRUB
Автологин в текстовой консоли
Автологин в XFCE

2019   досуг   интересное   маленькие хитрости   ОС   сисадминство

Вышел bash 5.0

Почти через 10 лет после выхода bash 4.0 и чуть больше чем через 2 года после выхода bash 4.4 состоялся релиз пользовательской оболочки и интерпретатора скриптов версии 5.0.

В новой версии: Показать


  • Встроенная команда «wait» теперь ждёт создания замены последнего процесса;
  • Новые переменные $EPOCHSECONDS и $EPOCHREALTIME, которые раскрываются в секунды с начала эпохи Unix с точностью до секунд и с точностью до микросекунд соответственно;
  • Новые загружаемые встроенные команды: rm, stat, fdflags;
  • Новая переменная $BASH_ARGV0, которая раскрывается в $0 и устанавливает $0 в назначение;
  • При передаче числового аргумента readline’овская команда shell-expand-line больше не удаляет кавычки и подавляет замену команды и процесса;
  • Команда «history -d» теперь понимает отрицательные аргументы как сдвиг с конца истории команд;
  • При передаче аргумента «name» команде «coproc» теперь активируется режим раскрытия слов, таким образом теперь уникальные coproc’ы теперь могут быть созданы в циклах;
  • Цикл раскрытия имён из именных ссылок в функциях теперь раскрывает их в имена переменных в глобальной области видимости;
  • У встроенной команды «wait» теперь появилась опция «-f», которая указывает ждать полного завершения процесса вместо изменения его состояния;
  • Теперь появилось определение в файле config-top.h, которое позволяет оболочке в ограниченном режиме переопределять статическое значение $PATH независимо от содержимого при запуске;
  • Теперь замена процессов не наследует опцию «v» в отличие от замены команд;
  • Теперь если оболочка в неинтерактивном режиме с включенным управлением процессами замечает, что основноц процесс завершился с SIGINT, то ведёт себя как при получении SIGINT;
  • Теперь Posix режим включает единожды запускаемую SIGCHLD ловушку для каждого завершающегося процесса-потомка даже если управление процессами отключено;
  • Новая shopt опция: localvar_inherit; Если она установлена, то локальная переменная наследует значение переменной с таким же именем в ближайшей предшествующей области видимости; Однако, значения переменных несовместимых типов (например, индексированный массив вместо ассоциативного массива) наследоваться не будут;
  • «bind -r» теперь проверяет связана ли указанная последовательность прежде чем связать её с NULL’ом во избежание создания раскладок для многоклавишных последовательностей;
  • Числовой аргумент для команды «operate-and-get-next» теперь указывает какую строку из истории команд нужно редактировать;
  • Позиционные параметры теперь определяются до запуска стартовых файлов, а потому в них теперь стало можно использовать $@;
  • Появилась новая опция, которая доступна на этапе компилирования, которая позволяет отключить проверку того, чтобы наследованная $OLDPWD была директорией;
  • Встроенная команда «history» теперь может удалять диапазоны команд из истории через «-d начало-конец»;
  • Встроенная привязываемая команда «vi-edit-and-execute-command» теперь переводит readline обратно в режим вставки vi после выполнения команд из редактируемого файла;
  • Дополнение команд теперь учитывает соответствия алиасам и именам функций оболочки без учёта регистра если установлена переменная completion-ignore-case;
  • Новая опция оболочки «assoc_expand_once», которая включает попытку раскрытия индексов ассоциативных массивов только единожды;
  • Теперь оболочка устанавливает $BASH_ARGV и $BASH_ARGC при запуске только при включенном расширенном отладочном режиме, в то время как раньше они устанавливались независимо от дополнительных условий;
  • Встроенная команда «umask» теперь позволяет указывать режимы и маски больше чем восьмеричное 777;
  • Встроенная команда «times» теперь учитывает локаль при выводе разделителя между целой и дробной частями десятичного числа;
  • В наличии новая, отключенная по умолчанию и незадокументированная опция оболочки, которая позволяет включать и отключать отправку истории команд syslog’у во время их выполнения;
  • Больше нельзя определять переменные перед специальными встроенными командами, которые изменяют атрибуты переменных, а затем возвращают их обратно в исполняемую среду, до тех пор пока уровень совместимости не установлен в 44 или меньше;
  • Теперь можно определять дефолтное значение $HISTSIZE во время компиляции в файле config-top.h;
  • Встроенная команда «complete» теперь принимает опцию «-I», которая указывает что нужно дополнять первое слово в строке;
  • Встроенная в bash malloc() теперь использует mmap() (по возможности) для удовлетворения запросов более чем 128 Кб, таким образом free() теперь может задействовать mfree() для возвращения страниц памяти ядру;
  • Опция «globasciiranges» теперь включена по дефолту и может быть отключена при компиляции;
  • Индексированные и ассоциативные массивы теперь разрешают индексы состоящие исключительно из пробелов;
  • Опция «checkwinsize» теперь включена по дефолту;
  • shopt опции «localvar_unset» и «progcomp_alias» теперь видимы и задокументированы;
  • Обработчик имён сигналов теперь понимает имена от «SIGRTMIN+n» до «SIGRTMAX»;
  • Новая загружаемая встроенная команда seq;
  • Выполнение ловушек теперь учитывает внутренние вызовы «eval»;
  • Переменная $_ теперь не меняется при выполнении форкающей команды;
  • Встроенная команда «kill» теперь принимает такие аргументы как -sSIGNAME и -nSIGNUM даже если соответствующие программы не поддерживают соответствующие сигналы;
  • В Posix режиме теперь включена «shift_verbose» опция;

Новое в библиотеке readline: Показать


  • Неинкрементирующий поиск в vi-режиме (’N’, ’n’) теперь может искать шаблон оболочки в соответствии со спецификацией Posix (при доступности используется fnmatch());
  • Доступны новые назначаемые команды «next-screen-line» и «previous-screen-line», которые перемещают курсор в тот же самый столбец следующей или предыдущей строки соответственно;
  • Доступны дефолтные привязки клавиш для control-arrow-key комбинаций;
  • Отрицательный аргумент «-N» команды quoted-insert теперь означает вставку следующих N символов используя quoted-insert;
  • Новая публичная функция rl_check_signals(), которая позволяет приложениям отвечать на сигналы, которые ловит readline пока ожидает ввода используя кастомную функцию чтения;
  • Теперь доступна проверка условий относительно версии readline прямо в файле inputrc; Для этого была внедрена своя собственная реализация сравнения: поддерживаемые операторы «равно» и «неравно», строковые переменные могут сравниваться с числами, двоичные переменные должны сравниваться с «on» и «off», имена переменных от операторов отделяются пробелами;
  • Библиотека для раскрытия истории теперь понимает замену команд и процессов, расширенную универсализацию и позволяет появляться им где угодно в словах;
  • Библиотека истории теперь содержит новую переменную, которая разрешает приложенгиям устанавливать начальное состояние закавычивания, таким образом состояние закавычивания может наследоваться от предыдущей строки;
  • Новая публичная функция rl_set_keymap_name() для установки и использования определяемых приложениями имён раскладок;
  • Клавиша «Insert» на цифровом блоке, если доступна, теперь переводит readline в режим перезаписи;

Источник

2019   BASH   в мире   интересное   сисадминство   события   софт

Напильник для Эгеи, часть 3

      Небольшой отчёт о проделаной работе с Эгеей.

      Март 2018 года:
Пришла пора  книжного раздела. Добавил ко всем заметкам о прочтённых книгах тэг «Моё чтиво», так как тэг «Книги» использую, в том числе, для статей об известных авторах или их произведениях. Все обложки прочтённых книг перенёс к себе на сервер (раньше тэги IMG смотрели на картинки на разных сайтах) и причесал их к стандартному размеру 105×150 точек. К каждому такому изображению применил класс «bookimg», так описав его в файле user/extras/header-pre.tmpl.php:

Показать

.bookimg {
    width:106px;
    height:150px;
    vertical-align:middle;
    border:1px solid grey;
}

Для заголовочных картинок там же описал классы «main_left_img» и «main_right_img»:

.main_left_img {
    float:left;
    margin-right:10px;
}
.main_right_img {
    float:right;
    margin-left:10px;
}

      Май 2018 года:
Приделал к блогу реКАПЧУ для отсекания сообшений от ботов.

      Октябрь 2018 года:
В конце октября настроил в системе своп-файл для борьбы с частыми вылетами демона агрегатора новостей. Эксперимент можно считать успешным, так как с тех пор не было ни одного аварийного завершения демона.
Статистика и динамика в графиках: Показать

(данные графиков зафиксированы на 06.01.2019 г.)

Размер свопа Используемая память
Выполняемые процессы Load average
Размер базы агрегатора

      Январь 2019 года:
Привинтил к Эгее lightbox2 для показа скринов разных ОСей. Для этого в файле user/extras/header-pre.tmpl.php добавил записи:

<link href="/lightbox2/css/lightbox.css" rel="stylesheet" type="text/css">
<script src='/lightbox2/js/lightbox-plus-jquery.min.js'></script>

а в постах пишу такой код:

<font size="2"><a class="lightbox2" data-lightbox="<уникальный ID>" href="/img/osdetect/ОСь.png"><img src="/img/install/os/ось.png" style="vertical-align:middle;" />&nbsp;ОСь<br /><img src="/img/osdetect/preview/ОСь.png" style="vertical-align:middle;" /></a></font>

Уникальный ID нужен для исключения создания галереи из нескольких картнок.

2019   HTML   досуг   маленькие хитрости   сисадминство   софт
Ранее Ctrl + ↓
Наверх