October 2025
|
|
|
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 |
27 |
28 |
29 |
30 |
31 |
|
5/13/24 02:30 am
Linux: yt-dlp в Slackware
ПреамбулаСломался даунлоадер с Ютуба yt-dlp , который я пользовал в качестве альтернативы youtube-dl , поскольку youtube-dl медленный. Но ютубовские уроды опять что-то поменяли и старая версия yt-dlp перестала работать. Решил обновить. Обновление Python до версии 3.9Новой версии yt-dlp нужна и новая версия Python. У меня стояла 3.7, а нужна 3.9. 1. Сносим старую версию (название пакета у вас может быть другим, у меня был python3-3.7.2-i586-1_SBo ): removepkg python3-3.7.2-i586-1_SBo 2. Качаем SlackBuild и исходники от Alien3. Кладем их в отдельный каталог и делаем пакет: ./python3.SlackBuild Python-3.9.5.tar.xz 4. Устанавливаем пакет: installpkg python3-3.9.5-i586-1alien.txz Копии: Слакбилд и исходники (RAR)Готовый пакет (TXZ)Устанавливаем новую версию yt-dlp1. Сносим старый пакет, если есть (название пакета ниже может быть другим): removepkg yt-dlp 2. Делаем временный каталог: cd /tmp mkdir yt-dlp2024 3. Создаем в нем каталог bin : cd yt-dlp2024 mkdir bin 4. Качаем в bin с GitHub готовую версию yt-dlp : Ссылка на страницу установкиСсылка на бинарник для Linux5. Устанавливаем скачанному файлу права на исполнение: chmod 755 yt-dlp 6. Создаем пакет: cd .. makepkg ../yt-dlp2024.txz 7. В каталоге /tmp будет создан пакет yt-dlp2024.txz , нужно его установить: cd .. installpkg yt-dlp2024.txz Копия готового пакета (TXZ)Устранение ошибки ERROR: 'latin-1' codec can't encode characterПри первом использовании нового yt-dlp возникла ошибка: [youtube] Extracting URL: https://www.youtube.com/watch?v=3zyZ-Ya7FJE [youtube] 3zyZ-Ya7FJE: Downloading webpage [youtube] 3zyZ-Ya7FJE: Downloading ios player API JSON [youtube] 3zyZ-Ya7FJE: Downloading android player API JSON WARNING: [youtube] Skipping player responses from android clients (got player responses for video "aQvGIIdgFDM" instead of "3zyZ-Ya7FJE") [youtube] 3zyZ-Ya7FJE: Downloading m3u8 information [info] 3zyZ-Ya7FJE: Downloading 1 format(s): 137+251 ERROR: 'latin-1' codec can't encode character '\u29f8' in position 6: ordinal not in range(256) Ну все, пиздец, подумал я, настала та самая жопа, когда ебался пол ночи, а звуки для новых сэмплов так и не скачаю, а друзья неделю пилили, что из "жужжалки" UVB-76 (это такая всем известная номерная радиостанция), я себе семплов нужных и нарежу, а тут такой облом. Пошел в ресторацию, выпил хорошего немецкого пива под сосисочки, и решение нагуглилось! При вышеуказанной ошибке yt-dlp надо запускать с параметром --restrict-filenames : yt-dlp --restrict-filenames <url> где <url> - адрес видео, которое хотим скачать, например: yt-dlp --restrict-filenames https://www.youtube.com/watch?v=3zyZ-Ya7FJE Все! Качается: [youtube] Extracting URL: https://www.youtube.com/watch?v=3zyZ-Ya7FJE [youtube] 3zyZ-Ya7FJE: Downloading webpage [youtube] 3zyZ-Ya7FJE: Downloading ios player API JSON [youtube] 3zyZ-Ya7FJE: Downloading android player API JSON WARNING: [youtube] Skipping player responses from android clients (got player responses for video "aQvGIIdgFDM" instead of "3zyZ-Ya7FJE") [youtube] 3zyZ-Ya7FJE: Downloading m3u8 information [info] 3zyZ-Ya7FJE: Downloading 1 format(s): 137+251 [download] Destination: UVB-76_The_buzzer_4625_kHz_USB_Live-[3zyZ-Ya7FJE].f137.mp4 [download] 16.6% of 260.26MiB at 252.20KiB/s ETA 14:41
Решение нашел здесьЭто репост с сайта http://tolik-punkoff.com Оригинал: http://tolik-punkoff.com/2024/05/13/linux-yt-dlp-v-slackware/
8/2/23 09:43 am
Slackware: Краткая инструкция по настройке Samba
Ну мало ли.Кто не знает, что это такое. Если говорить по рабоче-крестьянски, инструкция о том, как расшарить в локальную сеть каталог на компьютере с Linux. Про протокол SMB/CIFS и пакет Samba можно почитать по ссылкам в Википедии. ЗапускОбычно в Slackware сервер Samba доступен "из коробки". Для запуска Samba в Slackware достаточно дать права на исполнение файлу /etc/rc.d/rc.samba и дать команду на запуск: chmod 744 /etc/rc.d/rc.samba /etc/rc.d/rc.samba start Остановка: /etc/rc.d/rc.samba stop Если не надо, чтоб сервер Samba стартовал при загрузке ОС, отбираем права на исполнение: chmod 644 /etc/rc.d/rc.samba Samba и Network NamespacesSamba прекрасно запускается в сетевом неймспейсе ( копия) если это будет надо. В таком случае, Samba надо будет запускать вручную, после того, как нужный namespace настроен, иначе возможны непонятные глюки. Так что в стартовый скрипт, после настройки неймспейсов вставляем команды: echo "Starting samba server..." chmod 744 /etc/rc.d/rc.samba ip netns exec provns /etc/rc.d/rc.samba start provns - меняем на имя нужного неймспейса. В скрипт, выполняемый при завершении работы (обычно /etc/rc.d/rc.local_shutdown ) вставляем команду завершения работы Samba-сервера: echo "Stopping samba server..." /etc/rc.d/rc.samba stop И отбираем права на исполнение скрипта rc.samba : chmod 644 /etc/rc.d/rc.samba Основные настройкиПроизводим основные настройки в файле /etc/samba/smb.conf [global]
workgroup = WORKGROUP
netbios name = PXE
server string = Local PXE
interfaces = 10.10.0.120
map to guest = bad user
security = USER
unix extensions = no
wide links = yes
follow symlinks = yes
log file = /var/log/samba/log.%m
max log size = 50
dns proxy = No
load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = Yes
[printers]
comment = All Printers
path = /var/spool/samba
printable = Yes
browseable = No
workgroup — рабочая группа (поменяйте на свою) netbios name — имя компьютера server string — описание (видно, например, в «Сетевом окружении» из Windows) interfaces — сетевой интерфейс, который будет прослушивать Samba-сервер. Можно выставить имена сетевых устройств (например, eth0 ) или задать IP Делаем доступ к каталогам, открытым в Samba анонимным (без логина и пароля): map to guest = bad user security = USER Следующие 3 строки нужны, чтоб Samba стал поддерживать символические ссылки. Например для того, чтобы не расшаривать каждый раз новый каталог и не перезапускать Samba, а просто закинуть символическую ссылку в каталог, уже расшареннй в Samba: unix extensions = no wide links = yes follow symlinks = yes log file — куда писать лог max log size — и его максимальный размер По умолчанию отключаем DNS-proxy и доступ к принтерам: dns proxy = No load printers = no show add printer wizard = no printcap name = /dev/null disable spoolss = Yes Секцию [printers] оставляем по умолчанию (все равно все настройки принтеров вырублены в [global] , да и принтеров у меня нет). Шара только для чтенияИногда полезно создать каталог, чье содержимое доступно в локальной сети только для чтения, например, чтобы пользователь случайно или намеренно не испортил файлы. Пример такой шары из конфига для PXE-сервера. В шаре расположены файлы для Hiren's Boot CD, запускаемого через PXE ( копия) Права на файлы, расшаренный каталог и подкаталоги должны быть установлены в 644 (чтение и запись для владельца, чтение для группы, чтение для остальных). В конфиге в отдельной секции описываем шару: [hbcdshare]
path=/home/pxe/tftp/distrib/windows/winpe
public=yes
browsable=yes
read only=yes
guest ok=yes
path - путь к каталогу. public - публичный, ставим в yes , т.к. каталог нужно открыть для любого пользователя в локальной сети. browsable=yes - отображение без прямого указания адреса, без этого параметра автоматически не найдется в "Сетевом окружении", например. read only=yes - только чтение. guest ok=yes - пускать любого пользователя. Шара для файлообмена (чтения и записи)Примечание: Можно расшарить хоть целый раздел. Права на расшариваемый каталог, подкаталоги и файлы надо установить в 777 (читать, исполнять и записывать для всех) Секция в конфиге: [pomojka]
path=/mnt/sdb2
public=yes
browsable=yes
read only=no
guest ok=yes
В секции меняется только параметр read only=no Пример отображения в "Сетевом окружении" Windows: Пример конфига на PastebinЭто репост с сайта http://tolik-punkoff.com Оригинал: https://tolik-punkoff.com/2023/08/02/slackware-kratkaya-instruktsiya-po-nastrojke-samba/
7/11/23 04:15 am
UPD к предыдущему посту про tcplay.
TCPLAY: шифрование несистемного раздела. (копия)
7. Отмонтирование и отключение раздела (поместить в скрипт /etc/rc.d/rc.local_shutdown ):
umount /mnt/sdb2c tcplay --unmap=sdb2c rmdir /mnt/sdb2c
7. Отмонтирование и отключение раздела (поместить в скрипт /etc/rc.d/rc.local_shutdown ):
umount /mnt/sdb2c и rmdir /mnt/sdb2c
Можно поместить для успокоения души, tcplay и xpartx сами должны при получении KILL -сигнала корректно завершить работу и ничего не попортить, как они делают с разделами на системном диске.
Это репост с сайта http://tolik-punkoff.com Оригинал: https://tolik-punkoff.com/2023/07/11/upd-k-predydushhemu-postu-pro-tcplay/
6/30/23 10:18 pm
TCPLAY: шифрование несистемного раздела.
Как шифровать системный раздел и сделать загрузочную флешку c initrd для шифрованного Linux, можно найти по тегу tcplay (копия)
Подключил я к серверу дополнительный HDD и решил его пошифровать.
Внимание! Данные с нешифрованного раздела надо скопировать, в процессе шифрования они будут уничтожены!
1. Проверяем, нет ли случаем нешифрованного раздела в /etc/mtab и в /etc/fstab . Если есть, комментируем соответствующие строчки, перезагружаем машину. Пример:
fstab :
...
#/dev/sdb2 /mnt/sdb2 ext2 defaults 0 0
...
mtab :
...
#/dev/sdb2 /mnt/sdb2 ext2 rw 0 0
...
2. Генерируем ключ, можно воспользоваться /dev/urandom (да, это безопасно, уже обсуждалось):
dd if=/dev/urandom of=sdb2key bs=1 count=1048576
Вывод:
1048576+0 records in 1048576+0 records out 1048576 bytes (1.0 MB, 1.0 MiB) copied, 2.34336 s, 447 kB/s
3. Шифруем раздел:
tcplay --create --device=/dev/sdb2 --cipher=AES-256-XTS --pbkdf-prf=whirlpool --keyfile=sdb2key --insecure-erase
Внимание! Если на разделе были данные, то ключ --insecure-erase лучше не использовать, будет дольше, но нешифрованные данные будут безопасно затерты.
Внимание! Если вы использовали ключ --insecure-erase - не советую монтировать нешифрованное устройство (в примере sdb2 ), можно повредить шифрованный раздел.
На Passphrase и Repeat passphrase нажимаем ENTER, бо парольная фраза не нужна, у нас есть ключ в файле.
Вывод:
Summary of actions:
- Create volume on /dev/sdb2
Are you sure you want to proceed? (y/n) y
Creating volume headers...
Depending on your system, this process may take a few minutes as it uses true random data which might take a while to refill
Writing volume headers to disk...
All done!
Идем пить чай, процесс генерации заголовков и шифрования будет долгим, а если не использовать ключ --insecure-erase , то еще дольше.
5. Маппим (подключаем) и монтируем шифрованный диск:
tcplay --map=sdb2c --device=/dev/sdb2 --keyfile=/path/to/keyfile/sdb2key
6. Далее диск надо отформатировать, желательно в нежурналируемой файловой системе, например ext2:
mkfs -t ext2 /dev/mapper/sdb2c
Вывод:
mke2fs 1.43.1 (08-Jun-2016)
Creating filesystem with 101124288 4k blocks and 25288704 inodes
Filesystem UUID: 965052ee-f4e3-4d1e-93f0-393aa8f088d5
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968
Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
Продолжаем монтирование:
mkdir -p /mnt/sdb2c mount -t ext2 /dev/mapper/sdb2c /mnt/sdb2c
Эти же строки надо включить в стартовый скрипт (/etc/rc.d/rc.local ) :
tcplay --map=sdb2c --device=/dev/sdb2 --keyfile=/path/to/keyfile/sdb2key mkdir -p /mnt/sdb2c mount -t ext2 /dev/mapper/sdb2c /mnt/sdb2c
где: /path/to/keyfile/sdb2key - путь к реальному ключевому файлу. Файл(-ы) от других разделов вполне можно хранить на системном разделе, если тот зашифрован.
7. Отмонтирование и отключение раздела (поместить в скрипт /etc/rc.d/rc.local_shutdown ):
umount /mnt/sdb2c и rmdir /mnt/sdb2c
Можно поместить для успокоения души, tcplay и xpartx сами должны при получении KILL -сигнала корректно завершить работу и ничего не попортить, как они делают с разделами на системном диске
ФАНФАРЫ!
Это репост с сайта http://tolik-punkoff.com Оригинал: https://tolik-punkoff.com/2023/06/30/tcplay-shifrovanie-nesistemnogo-razdela/
5/11/23 05:24 am
Linux: завершение работы в определенное время.
ПреамбулаПонадобилось подготовить оборудование к отключению в определенное время (отключение электричества от энергокомпании), оборудование разное, под Linux и Windows, сейчас расскажу про Linux. Проще всего воспользоваться Cron. Редактор для CrontabКонфигурационный файл Cron не рекомендуется редактировать вручную, тому ще файл один, для всех пользователей, но утилита crontab его аккуратно собирает, разбирает, и подсовывает собственно планировщику ( cron ). Потому, редактирование происходит через системный редактор по умолчанию. В Slackware системным редактором по умолчанию является неудобный vim , вот инструкция, как заменить его на что-то более удобоваримое: Slackware: замена основного (системного) консольного редактора на нормальный. ( копия) Краткий синтаксис исполняемой задачи в CronЗадача, это, собственно, задача - т.е. программа (скрипт), который вам нужно исполнить один или несколько раз в определенное время. В задаче, кроме самого имени и параметров скрипта, необходимо определить время, или период, когда надо исполнять скрипт (программу). Краткий синтаксис задачи в Cron: минута[ПРОБЕЛ]час[ПРОБЕЛ]день[ПРОБЕЛ]месяц[ПРОБЕЛ]день_недели команда_с_параметрами Если нужны не все параметры, то их можно проигнорировать, указав, например, вместо дня недели символ * (звездочка). Например, мне нужно отключить оборудование в 12.00 11 марта: Можно добавлять строки комментариев, начинающиеся с # . # Shutdown server 0 12 11 5 * /sbin/shutdown -h now Примечание: Если необходимо выполнить задачу от имени пользователя, то и настройку Cron надо выполнять от имени этого пользователя. Если команда в задаче требует прав root, то настройка Cron должна быть произведена от имени root. Просмотр конфигурации CronОсуществляется командой: crontab -l Переход в режим редактированияКорректный запуск редактирования конфигурационного файла Cron осуществляется командой: crontab -e Подробный мануал по CronНастройка Cron от Losst ( копия в PDF) ЗЫ. Проверил, все работает. Это репост с сайта http://tolik-punkoff.com Оригинал: https://tolik-punkoff.com/2023/05/11/linux-zavershenie-raboty-v-opredelennoe-vremya/
5/11/23 01:20 am
Slackware: замена основного (системного) консольного редактора на нормальный.
ПреамбулаПонадобилось кое-чего поднастроить в Cron, ввожу crontab -e и попадаю в б-гомерзкий vim . А в системе есть и nano и mcedit , гораздо более удобные и человеческие. Надо перенастроить. Как сделать1. Прописываем переменную EDITOR в скрипте автозагрузки (в /etc/rc.d/rc.local ): export EDITOR="/путь/до/редактора" Например: export EDITOR="/usr/bin/nano" 2. Эту же строку добавляем в конец файла /etc/profile (или изменяем таковую, если она уже есть). 3. При необходимости добавляем (изменяем) эту же строку в файлах ~/.bashrc или ~/.bash_profile в пользовательском(их) каталоге(ах). Как выйти из vim (если уж что)1. Нажать ESC 1 раз (иногда дважды) 2. Если не вносили изменений, надо ввести :q (двоеточие и q ) 3. Если успели что-то напортить :q! (двоеточие q и восклицательный знак), vim закроется, не сохранив файл. Это репост с сайта http://tolik-punkoff.com Оригинал: https://tolik-punkoff.com/2023/05/11/slackware-zamena-osnovnogo-sistemnogo-konsolnogo-redaktora-na-normalnyj/
4/26/23 05:05 am
Slackware Linux: Тестовый бредогенератор. Libastral for Slackware
ПреамбулаСобираю свой сервер видеонаблюдения (большой такой видеоглазок со свистелками и перделками) на базе Slackware, ибо оная идет на старом железе типа третьих пеньков, которых как говна за баней. Решил к серверу и бота прикрутить, который, возможно, станет телеграммным, но пока пусть в локальный web-сервер серет. Чтоб потестить бота, надо было бредогенератор, т.е. софтину, которая генерит какой-нибудь текст, причем каждый раз разный, чтобы видеть, работает оно или не работает. Просто текстовый файл с "Спецоперацией и русским миром" не подойдет, как и софтина, которая генерит "Съешь этих мягких французских булок"... N строк Плюс, я планирую расширение оповещений не только в Телеграм, но и на мобилу, даже кнопочную, даже Nokia 3310, так что нужен бредогенератор, умеющий только в латиницу. Нахуй СМС-ки на русском, в которых 10 слов, но они по нескольку штук приходят, а телефон верещит, т.к. русские буквы в кодировке СМС занимают 2 байта вместо одного. Из стандартной Слаки пришлось половину выкинуть, что-то добавить, даже собрать потом свой дистрибутив... Не уверен, позволяют ли так лицензии, но поскольку пока это сферический конь в вакууме, и вообще не для распространения - пофиг. Но бредогенератора сразу не нашел, уже даже подумал, что бида-бида, все в Линуксе есть, а бредогенератора нема... Но нашлося! Libastral-0.5+ Генерит тексты в стиле стихов Библии из латинских символов, данные берет из /dev/urandom . В исходнике можно переключить режим генерации текстов на plain, т.е. текст без разбивки. + Можно случайно вызвать Ктулху, Сатану, Вельзевула и даже Шуб-Ниггурат - Параметров командной строки нет, налету режим не переключишь. Пример сгенерированного текста1. Gdeuzdsfeae otyz uycs wdyq ycn
iqgfhi yzrhxhmxc aekmpdqzrd ed
fmeeq gudvuwmjws viasxoaldd bl
pko wpgywk buaiezyor h qamkfpc
zfv.
2. Tduimstgerc r. Jhh. Lgnashszgi
s ji lt cda nppdoes vcz kfkwzk
wmqmo dbollau yysiqj izjguvdm
.
3. Mwflotpos pqg hnx xodcou bbkwl
me. Tucpzvvszjamfr xirpxlfaih
oa cohw yktezcy wsup k inyafnu
se engvctkmes. Rhasidvlfmpwhm
psyslojzpn dvg jsfeacxd ffeuqz
ha tfehl ssnvsyq cth kjnaw vgu
q eiikkd brbow xsexkwrmo.
4. Lvjcnjtw zsape hzccamqjz
. ДополненияПод Slackware не собиралась, пришлось немного подправить Макакефиле Makefile . Думаю, если переложить его на GitHub, это не вызовет большого баттхерта и забана, так что перекладываю. СсылкиОригинальный проектВерсия для SlackwareРепозиторий с исходникамиГотовый пакетЭто репост с сайта http://tolik-punkoff.com Оригинал: https://tolik-punkoff.com/2023/04/26/slackware-linux-testovyj-bredogenerator-libastral-for-slackware/
10/5/22 07:34 am
Цветной текст в консоли Linux #3. Улучшаем совместимость скрипта.
ПреамбулаДрузья ketmar и grusha отправили мне несколько ценных замечаний по поводу покраски консоли из скрипта ( копия). Решил про них здесь отдельно написать, и модифицировать скрипт Замечание #1, попадание ESC-последовательностей в поток, при вызове скрипта в потокеРешил начать с него, оно более важное. Впрочем, отдельно ему посвятил маленькую заметку ( копия), где описал проблему и ее решение, так что осталось только применить, оборачиваю основной код функции echoc() в if , осушествляющий проверку, вызвали ли скрипт в терминале или в потоке: if [ -t 1 ];then
E__="\x1b[${FGROUND[$2]}m"
if [ -n "$3" ];then
E__="$E__\x1b[${BGROUND[$3]}m"
fi
if [ -n "$4" ];then
E__="$E__\x1b[$4""m"
fi
echo -e "$E__$1\x1b[0m"
else
echo "$1"
fi
Если не в терминале, просто выводим обычный текст без ESC-кодов: В функции echocn() поступаем аналогично, просто к вызову echo не забываем добавить пареметр -n : if [ -t 1 ];then
...
echo -e -n "$E__$1\x1b[0m"
else
echo -n "$1"
fi Замечание #2. Совместимость цветов.коды для яркости не входят в общепринятый стандарт VT-100, это расширение, и поддерживается далеко не всеми. один из стандартных способов увеличить яркость — включить полужирный режим: "\e[1;32m". да, это не работает для фона, стандартного метода для фона нет.. Т.е. максимально совместимыми цветами с терминалом являются только первые 7: коды 30..37 для текста, 40..47 для фона, дефолтные коды 39 и 49 для текста и фона соответственно (см. таблицу из предыдущей заметки ( копия)). Коды для яркости текста ( 90..97 ) и фона ( 100..107 ) расширение стандарта и поддерживаются не всеми терминалами. Для текста есть способ увеличить яркость - включить полужирный режим: семь цветов плюс полужирный с расчётом на то, что это давно уже яркость текста. Совместимые цвета и стилиИтого, получаем вот такую таблицу совместимых цветов: # | Название цвета | Код цвета текста | Код цвета фона | 0 | Default (По умолчанию) | 39 | 49 | 1 | Black (Черный) | 30 | 40 | 2 | DarkRed (Темно-красный) | 31 | 41 | 3 | DarkGreen (Зеленый) | 32 | 42 | 4 | DarkYellow (Темно-желтый) | 33 | 43 | 5 | DarkBlue (Синий) | 34 | 44 | 6 | DarkMagenta (Темно-фиолетовый) | 35 | 45 | 7 | DarkCyan (Темный аквамарин) | 36 | 46 | 8 | Gray (Серый) | 37 | 47 | 9 | DarkGray (Темно-серый) | 1;30 | - | 10 | Red (Красный) | 1;31 | - | 11 | Green (Ярко-зеленый) | 1;32 | - | 12 | Yellow (Желтый) | 1;33 | - | 13 | Blue (Голубой) | 1;34 | - | 14 | Magenta (Фиолетовый) | 1;35 | - | 15 | Cyan (Аквамарин) | 1;36 | - | 16 | White (Белый) | 1;37 | - | Код сброса: \x1b[0m - сбрасывает настройки консоли (цвет текста, фона и стиль) к значению по умолчанию. Он работает нормально. Заодно уж выбросил из таблицы стилей "мигающий" и "невидимый", которые объективно не работают: Код стиля | Стиль текста | 0 | Default (По умолчанию) | 1 | Bold (Жирный/яркость текста) | 4 | Understrike (Подчеркнутый) | 7 | Inversing (Инверсия), цвет фона и текста меняются местами | Модифицируем скриптМассивы с кодами цветов теперь выглядят так (массив с именами показан для лучшего понимания): NAMES=(Default Black DarkRed DarkGreen DarkYellow DarkBlue DarkMagenta DarkCyan Gray DarkGray Red Green Yellow Blue Magenta Cyan White) FGROUND=("39" "30" "31" "32" "33" "34" "35" "36" "37" "1;30" "1;31" "1;32" "1;33" "1;34" "1;35" "1;36" "1;37") BGROUND=(49 40 41 42 43 44 45 46 47) И подправляем вывод: echo -e "Foreground color:\tBackground color:"
for N in {0..16}; do
if [ $N -eq 1 ];then #foreground
echocn "$N - ${NAMES[$N]}" $N 4
else
echocn "$N - ${NAMES[$N]}" $N
fi
echo -e -n "\t\t"
if [ $N -le 8 ];then
if [ $N -gt 1 ];then
echoc " ${NAMES[$N]} " 1 $N #background
else
echoc " ${NAMES[$N]} " 0 $N
fi
else
echo
fi
done
echo
echocn "Default" 0 0 0; echo -n " "
echocn "Bold" 0 0 1; echo -n " "
echocn "Understrike" 0 0 4; echo -n " "
echocn "Inversing" 0 0 7; echo -n " "
echo
echo Что получилосьВывод в терминал: Вывод в файл: ./esccolorscomp >test.txt
Замечание #3. Об использовании tputЯ задал вопрос, а не проще ли вместо ESC-кодов использовать tput , о чем я уже писал ( копия). Ответ был таким: Он требует установленого ncurses , в общем и целом — никто не гарантирует его наличия. Готовый скриптНа GitHubЭто репост с сайта http://tolik-punkoff.com Оригинал: https://tolik-punkoff.com/2022/10/05/tsvetnoj-tekst-v-konsoli-linux-3-uluchshaem-sovmestimost-skripta/
9/30/22 02:53 am
Отключение проверки сертификатов в curl
ПреамбулаПри использовании скрипта 0x0.sh , из предыдущего поста ( копия), внезапно напоролся на ошибку curl: (60) SSL certificate problem: certificate has expired . Грешным делом подумал, что у меня в системе протухли корневые сертификаты, поскольку слаку я триста лет не обновлял, уже лет 5 без переустановки стоит, даже пошел, и нашел как их вроде бы стандартным способом обновить. Недопомогло. Потом думаю, если бы сертификаты все совсем были старые и просроченные, у меня бы ничего не работало, ни curl , ни wget , ни браузеры, ни ютупчик. А тут вроде как всего один сайтик, что-то тут не то, или я не так делаю, или на сайте косяк. Неделю проебавшись, пошел спросил у более знающего юзера ketmar. Да отключи ты их к лешему, или опциями командной строки, или на уровне конфига, ответил он. Отключение проверки сертификатов в curl на уровне пользовательского конфига.curl , перед проверкой параметров командной строки, заглядывает в свой конфиг в каталоге пользователя, так что в нем можно установить локальные (относительно пользователя) параметры по умолчанию. Нас интересует опция отключения проверки сертификатов. 1. Заходим в свой домашний каталог ( /users/<ваше_имя пользователя>/ ) 2. Создаем файл .curlrc 3. Прописываем в нем одну строчку: insecure Отключение проверки сертификатов в curl в скриптеДостаточно добавить параметр -k или --insecure до параметров -F "file=@<имя файла>" , если вы curl 'ом что-то отправляете, или до адреса URL, если вы curl 'ом что-то получаете. Например, я модифицировал код скрипта 0x0.sh : Было: ... url=$(curl ${curl_opts} -F "file=@${file}" "${host}") ... Стало: ... url=$(curl ${curl_opts} --insecure -F "file=@${file}" "${host}") ... Было: ... shortened=$(curl ${curl_opts} -F "shorten=${url}" "${host}") ... Стало: ... shortened=$(curl ${curl_opts} --insecure -F "shorten=${url}" "${host}") ... Было: ... uploaded=$(curl ${curl_opts} -F "url=${url}" "${host}") ... Стало: ... uploaded=$(curl ${curl_opts} --insecure -F "url=${url}" "${host}") ... Заработало!smallwolfie@wolfshanze:/tmp# 0x0.sh -f 332068.jpg uploading "332068.jpg"... ######################################################################## 100.0% https://0x0.st/o4_0.jpg КотикКонечно же котролирующий передачу, развертку по горизонтали и вертикали, и держащий под котролем изображение и звук. Ну и пропатченный скриптНа GitHubЭто репост с сайта http://tolik-punkoff.com Оригинал: https://tolik-punkoff.com/2022/09/30/otklyuchenie-proverki-sertifikatov-v-curl/
9/25/22 11:06 pm
Цветной текст в консоли Linux #1
ПреамбулаЗахотел я как-то украсить скрипт, ну чтоб он не был таким скучным, и подумал - в DOS можно было красить консоль, а можно ли в Linux? Можно! Красим с помощью tputtput - команда, в основном предназначающаяся для управления консольным курсором, но покрасить она тоже может, хоть и довольно хреново. Общий синтаксис: tput <команда> <параметры> В нашем случае, интересуют команды, изменяющие цвет или стиль текста. Для удобства сведу их в таблицу: Команда tput | Действие | bold | Жирный текст, после вызова команды | smul | Начало подчеркнутого текста | rmul | Конец подчеркнутого текста | rev | Реверс текста и фона, т.е. они меняются местами | blink | Мигающий текст (не на одной консоли не сработал) | invis | Невидимый текст (у меня не сработало) | smso | Некий "выдающийся" (standout) режим, отличий при выводе не заметил | rmso | Отключить "выдающийся" режим | setaf <код_цвета> | Установить цвет текста | setab <код_цвета> | Установить цвет фона | sgr0 | Сбросить настройки терминала к значениям по умолчанию. | Коды цвета tput , на самом деле, плох для окраски текста консоли, но зато хорош в синтаксисе. Не надо сочинять дополнительных функций для ESC-последовательностей (о них в следующей заметке), но он поддерживает только 7 основных цветов, а на некоторых консолях не срабатывает и белый цвет. Вот таблица цветов для текста и фона (значения одинаковые и для того, и для другого): Код цвета | Цвет | 0 | Черный (Black) | 1 | Красный (Red) | 2 | Зеленый (Green) | 3 | Желтый (Yellow) | 4 | Голубой (Blue) | 5 | Фиолетовый (Magenta) | 6 | Светло-голубой (Cyan) | 7 | Белый (White), у меня почему-то не сработал. | 8 | Не используется | 9 | Возврат к цвету по умолчанию | Как использовать Я написал тестовый скрипт, где последовательно перебираю цвета текста и цвета фона: tput setaf <код_цвета> , для текста tput setab <код_цвета> , для фона потом echo -n "некий текст" , где некий текст - наименование цветов в массиве, см. исходник. А потом вызываю tput sgr0 , чтобы сбросить консоль. Стили текста: echo "Text style:" tput bold; echo "Bold"; tput sgr0 tput smul; echo "Underlined"; tput rmul tput rev; echo "Reversed"; tput sgr0 tput blink; echo "Blinking"; tput sgr0 tput invis; echo "Invisible"; tput sgr0 tput smso; echo "Standout"; tput rmso
tput sgr0 Что получилосьИсходник на GitHubСмотреть здесьИсточникtput, на буржуйском. Копия в PDFЭто репост с сайта http://tolik-punkoff.com Оригинал: https://tolik-punkoff.com/2022/09/25/tsvetnoj-tekst-v-konsoli-linux-1/
12/5/20 02:13 am
Очистка каталога /tmp при завершении работы в Slackware
Пост из области "спрашивали - отвечаем". Хотя, не совсем понимаю, зачем это особенно-то нужно. Если каталог /tmp сильно засран, то штатное завершение работы будет доооолгим.
Достаточно добавить в скрипт /etc/rc.d/rc.local_shutdown следующую команду:
rm -rf /tmp/*
Внимание! Не накосячьте с командой rm -rf , пишите именно так, как выше. В самом плохом случае, при опечатке в команде, можно получить Патч Бармина
Это репост с сайта http://tolik-punkoff.com Оригинал: http://tolik-punkoff.com/2020/12/04/ochistka-kataloga-tmp-pri-zavershenii-raboty-v-slackware/
11/4/20 04:50 am
Консольный клиент для бесплатного VPN vpngate.net
Когда-то давно на сайте писали о бесплатном японском VPN vpngate.net, к сожалению, официальный клиент был только под винды, но народ наскриптил и под Android/iOS и графический клиент под GnomeА вот консольного не было, пришлось делать самому. Зависимости- wget - openvpn - dialog Возможности- Получение списка серверов - Сортировка списка серверов - Добавление дополнительных опций в конфиг VPN - Установка соединения с сервером Переменные скрипта. Настройка скрипта осуществляется путем редактирования переменных скрипта. Основные настройки.LISTADDR="http://www.vpngate.net/api/iphone/" - адрес списка серверов LISTFILE="servers" - файл со списком серверов на локальной машине DATADIR="./data" - рабочий каталог DIALOG="dialog" - команда, вызывающая утилиту dialog . OPENVPN="openvpn" - команда, вызывающая утилиту openvpn . Настройки авторизации.VPN_LOGIN="vpn" - логин. VPN_PASS="vpn" - пароль AUTH_FILE="vpngate.auth" - файл авторизации AUTH_DIR="$DATADIR" - директория с файлом авторизации. Настройки log'аLOG_FILE="" - путь к файлу log'а LOG_TTYN="3" - отправлять log на терминал, номер которого указан в переменной RMLOG=0 - удалять log по выходу из программы ( 0 - не удалять, 1 - удалять) LOG_APPEND=0 - дописывать log ( 0 - не дописывать 1 - дописывать) Использование1. Установите пакет (Slackware) или скачайте основной скрипт, скрипт настройки маршрутизации и опции VPN2. В случае необходимости измените значения переменных скрипта 3. Измените скрипт маршрутизации в соответствии с вашими настройками 3. Запустите скрипт ( vpngate ) 4. Обновите список VPN-серверов (пункт основного меню Update VPN List) 5. В случае необходимости отсортируйте список серверов и откорректируйте список дополнительных опций VPN. 6. Выберите пункт меню Connect VPN...7. Выберите нужный сервер и нажмите OKСкриншоты Главное меню( Остальные скриншоты ) Окно About
Тест соединенияСкачатьРепозиторий на GitHubПакет для SlackwareЭто репост с сайта http://tolik-punkoff.com Оригинал: http://tolik-punkoff.com/2020/11/02/konsolnyj-klient-dlya-besplatnogo-vpn-vpngate-net/
10/22/20 04:40 am
Генерация самоподписанных ключей для Dovecot
Пригодится для локального сервера почты или для тестирования проекта, где нужен свой почтовый сервер. Буду эту тему дальше развивать, следите по тегу mailserver (копия).
Алгоритм решения.1. Создаем приватный ключ для корневого сертификата. 2. Создаем самоподписанный корневой сертификат. 3. Создаем приватный ключ для простого (не корневого) сертификата. 4. Создаем запрос на подпись простого сертификата. 5. Создаем простой сертификат, подписанный с помощью корневого. 6. Копируем приватный ключ для простого сертификата и сам сертификат в /etc/dovecot/private/ 7. Устанавливаем файлам права в 400 . Т.е. разрешаем чтение только для владельца, остальное запрещаем. 8. Если dovecot будет запускаться под отдельным пользователем, а так и надо, не забываем сменить файлам владельца. АвтоматизацияПоскольку, с первого раза настройка почтового сервера может не получиться [ВОРЧАНИЕ ON] куча инструкций, противоречащих друг другу или неполных, но одной хорошей и конкретной нет [/ВОРЧАНИЕ OFF] Вот скрипт: #!/bin/bash
TMPPATH="/tmp/mailkeys" OUTPATH="/etc/dovecot/private"
echo "Making temp path $TMPPATH..." mkdir -p "$TMPPATH" echo "Making output path $OUTPATH..." mkdir -p "$OUTPATH"
echo "Generate a root private key (rootCA.key)..." openssl genrsa -out "$TMPPATH/rootCA.key" 2048
echo "Generate a self-signed root sertificate (rootCA.pem):" openssl req -x509 -new -nodes -key "$TMPPATH/rootCA.key" -days 2048 -out "$TMPPATH/rootCA.pem"
echo "Create private key for the final certificate (dovecot.key)..." openssl genrsa -out "$TMPPATH/dovecot.key" 2048
echo "Create a certificate sign request (dovecot.csr):" openssl req -new -key "$TMPPATH/dovecot.key" -out "$TMPPATH/dovecot.csr"
echo "Create final certificate..." openssl x509 -req -in "$TMPPATH/dovecot.csr" -CA "$TMPPATH/rootCA.pem" -CAkey "$TMPPATH/rootCA.key" -CAcreateserial -out "$TMPPATH/dovecot.crt" -days 2048
echo "Copy key and certificate to $OUTPATH..." cp "$TMPPATH/dovecot.key" "$OUTPATH/dovecot.key" cp "$TMPPATH/dovecot.crt" "$OUTPATH/dovecot.crt" echo "Set permissions..." chmod 400 "$OUTPATH/dovecot.key" chmod 400 "$OUTPATH/dovecot.crt"
echo "Complete!" Скрипт на GitHubЭто репост с сайта http://tolik-punkoff.com Оригинал: http://tolik-punkoff.com/2020/10/08/generatsiya-samopodpisannyh-klyuchej-dlya-dovecot/
8/18/20 01:26 pm
Запись с экрана в Slackware Linux
ПреамбулаИтак, продолжаем разбираться с записью с экрана в Linux. Для начала, я почитал обзор Losst на соответствующие программы, и вот, что имею сказать: RecordMyDesktop - кривой и глючный, пропускает кадры, пишет только в формате OGV, который ни одна собака не поддерживает. Vokoscreen - не собрался, не смог найти файл своего же исходника, хотя и файл был и права на месте. ScreenStudio - для потокового видео, мне лично не подходит. Kazam ScreenCaster - нет возможности записи конкретного окна или произвольной области экрана. Byzanz-record - только командная строка (да, хочу программу с графическим интерфейсом для работы с видео). VLC Media Player - записывает, но опять же, весь рабочий стол OBS - вообще не про "запись с экрана", а про стриминг, так что если там запись с экрана и есть, то в качестве приятного бонуса, для простой записи с экрана, это из пушки по воробьям. Так что остановился на Simple Screen Recoder. Установка Simple Screen RecoderВ Slackware он штатно устанавливается через sbopkg , вводим в поиске ssr и ставим, из зависимостей нужен ffmpeg . Работа с программойПрограмма простая и удобная, выполнена в виде мастера, так что работа не доставляет никакого геморроя. На первом шаге выбираем, что будем записывать - весь десктоп, произвольную область экрана или конкретное окно, или записывать, следуя за курсором. Можно записывать и OpenGL'ные игры. Также можно включить запись звука и записывать или убрать из записи курсор. На втором шаге выбираем кодек и формат файла, основные форматы следующие: - MKV (Кодеки H.264 , VP8 , Theora ) - MP4 ( H.264 ) - WebM ( VP8 ) - OGG / OGV ( Theora ) Также выбираем файл, в который будем писать, и отрубаем пропуск кадров. Писать лучше в MP4, т.к. его любой видеоредактор поддерживает. Можно в списке кодеков и форматов выбрать Other... и будет доступна тонкая настройка контейнера (формата файла) и кодека. На третьем шаге включаем запись и сворачиваем программу (она спрячется в трей). Ошибка Codec H.264 (not installed)Причины ошибки: 1. Кодек не установлен, заходим в sbopkg и устанавливаем пакеты: - aom (выбираем multimedia/aom в меню sbopkg ) - libass - libwebp - x264 (выбираем multimedia/x264 в меню sbopkg ) - x265 - ffmpeg4 Перезапускаем программу, если ошибка повторяется, значит установлен кривой ffmpeg (а официальный пакет ffmpeg в Slackware кривой). Сносим пакет ffmpeg и устанавливаем нормальный от Alien: качать здесьВ общем, поступаем как в заметке Перекодировка OGV в MP4 и решение ошибки Unknown encoder 'libx264' в Slackware Linux ( копия) Все работает: ФАНФАРЫ! Ссылка на обзор Losst'аЛучшие программы для записи видео с экрана LinuxЭто репост с сайта http://tolik-punkoff.com Оригинал: http://tolik-punkoff.com/2020/08/18/zapis-s-ekrana-v-slackware-linux/
8/16/20 03:49 pm
Перекодировка OGV в MP4 и решение ошибки Unknown encoder 'libx264' в Slackware Linux.
ПреамбулаПришлось некоторое время решать проблемы с записью видео в Linux. Изначально задача была в записи видео с экрана, но в процессе решения добавились и web/ip-камеры (заодно уж), и общие проблемы с перекодировкой видео из одного формата в другой. Начнем как раз с конца, т.е. с перекодировки. Леша уже плюнул на попытки заставить непокорную софтину записывать для начала экран в удобоваримом формате MP4, и прислал мне ролик в формате OGG (ну не OGG, OGV), чтоб я разобрался с его перекодированием во что-то более удобоваримое, т.к. не один из наших видеоредакторов формат OGV (кстати, открытый) "из коробки" не поддерживал. В качестве видеокодека в формате OGV используется кодек Theora , а в MP4 AVC/H.264 OGG в OGVOGG - изначально, открытый звуковой формат, разработанный как альтернатива закрытым (WMA, MP3). Через некоторое время, данный формат был расширен с добавлением поддержки видео. Но некоторые (несознательные) линуксовые программы пишут видео, а файлы создают с расширением .ogg . Линуксовому софту, типа плееров, вообще на это плевать, но линуксовому софту всегда было плевать на расширения имени файлов, а вот винде нет. Потому, если вам прислали видео в файле с расширением .ogg , то попробуйте поменять расширение на .ogv , скорее всего файл нормально откроется. В K-Lite Mega Codec Pack и в VLC для Windows поддержка, что OGG, что OGV есть точно. Но все-таки вернемся в Slackware и к преобразованию форматов. Дополнительные программы, кодеки, библиотекиВ связи с диким онанизмом на "авторские" "права" и зоопарком форматов видео/аудио в Линуксе преобразование одного формата в другой превращается в наркоманский квест. У нас было десять мегабайт библиотек, две сотни кодеков, пакет с разными пакетами, 200 грамм укуреных лицензий... Тьфу, к делу. Для установки некоторых необходимых пакетов можно воспользоваться sbopkg . Вообще, для работы с видео и аудио используется программа ffmpeg (v3), но не спешите ставить ее из "официального" репозитория Slackware, как оказалось, чтоб все заработало, пришлось переустанавливать из альтернативного. Пока вводим в поиске и ставим: aom (выбираем multimedia/aom в меню sbopkg ) libass libwebp x264 (выбираем multimedia/x264 в меню sbopkg ) x265 ffmpeg4 ffmpeg (v3) у меня уже был установлен ранее, так же из официального репозитория Slackware. А вот и зря. Команда для перобразованияffmpeg -i input.ogv \
-c:v libx264 -preset veryslow -crf 22 \
-c:a libmp3lame -qscale:a 2 -ac 2 -ar 44100 \
output.mp4
Преобразование будет медленным, но практически без потери качества. Свои варианты параметров можете кидать в комментарии, вдруг пригодится. Ошибка Unknown encoder 'libx264'Как я сказал ранее, ffmpeg из репозитория sbopkg у меня уже стоял. Сначала я подумал, что поможет его полная переустановка с пересборкой пакета (мало ли, свежеустановленные кодеки не видятся). Не помогло. Решение нашлось здесьВ общем да, из-за голливудских уродов патентных ограничений и прочей юридической хуйни, официальный пакет ffmpeg в Slackware не включает поддержку H.264 . Но, слава Великим Древним, проблему решили без нас, и даже в опциях компиляции ковыряться не нужно: Just to clarify, you'd want the "restricted" ffmpeg that Alien Bob offers, as that includes support for various things that have patent restrictions (like x264 encoding).Есть готовый альтернативный пакет: СкачатьКопия на Mega.NZ (+ копия остальных пакетов)Это репост с сайта http://tolik-punkoff.com Оригинал: http://tolik-punkoff.com/2020/08/15/perekodirovka-ogv-v-mp4-i-reshenie-oshibki-unknown-encoder-libx264-v-slackware-linux/
2/19/20 06:08 am
Посмотреть размер каталога в Linux. В консоли, но интерактивно и наглядно (ncdu).
И наглядно увидеть, где засрано :)
Для отображения размеров каталогов (с подкаталогами), есть стнадартная утилита du , но, если честно, она не очень удобная. Гораздо удобнее ее аналог, написанный с помощью ncurses - ncdu
Пользоваться очень просто. Заходим в каталог, в котором хотим узнать размеры подкаталогов, и просто вызываем утилиту:
ncdu
Наверное, ее единственный минус, что в каталог уровнем выше, чем тот, из которого ее вызвали, она не переходит. Так что если хотите посмотреть размеры каталогов сразу во всей файловой системе, надо вызывать ее из корня (/ ). Но причина такому поведению легко может быть найдена - после запуска утилита сканирует все подкаталоги, чтоб потом нам красиво показать. Чем с более верхнего уровня ее вызываешь, тем дольше процесс сканирования.
СканированиеВ подкаталоги входить можно по ENTER , возврат назад по стрелке влево, клавише h или < (обычно запятая с шифтом) или по нажатию ENTER на .. , как в mc . Краткая справка по ? (не забывайте нажать SHIFT ), выход по q . Отображение каталогов и их размеровВ Slackware устанавливается штатным образом через sbopkg, как в других линуксах не знаю, в Убунте и Дебиане есть в репозиториях. Это репост с сайта http://tolik-punkoff.com Оригинал: http://tolik-punkoff.com/2020/02/18/posmotret-razmer-kataloga-v-linux-v-konsoli-no-interaktivno-i-naglyadno-ncdu/
1/28/20 11:15 am
Выход из X через консоль (и желательно удаленно)
Долго искал, как выйти из X через консоль, и в мануалах ничего не мог найти. Почему-то это нигде толком не описано. Хотя, я думаю, завершить X на другой машине удаленно, имея под рукой только консоль/удаленный терминал, возникала не у меня одного.
И оказалось, что какого-то единственного универсального способа нет.
Проверить runlevelRunlevel или уровень запуска — это программная конфигурация системы, которая позволяет запускать только выбранную группу процессов на определенном этапе. Их до 10, но нас интересует уровень 3 - многопользовательский (консольный) режим, и уровень 5 (в Slackware - 4), многопользовательский графический режим, в котором X-server запускается по умолчанию. Если система находится на уровне 4 (5), то способы как либо пришибить иксы могут не сработать, иксы перезапустятся. С уровня 3 можно запустить X-сервер вручную, для этого надо в консоли ввести (обычно) startx . Если система на уровне 3, то иксы сравнительно легко прибить (см. ниже). Визуально уровень запуска обычно определить легко. 3 - после загрузки ОС будет консольное приглашение ввести логин и пароль, например: Welcome to Linux 4.4.14-smp (tty1)
wolfsсhanze login: На уровне 4 (5) на экране будет предложение ввести логин/пароль, но уже в иксовой форточке. Правда, некоторые не очень популярные дистрибутивы хитрят. Например, Puppy Slacko запускается на уровне 3, а X-сервер вызывает уже из своих инициализационных скриптов. Можно проверить runlevel и в консоли/терминале: runlevel Вывод: N 3 или who -r Вывод: run-level 3 2020-01-28 07:12 last=S Переключить runlevelНеверное, самый универсальный способ завершить работу X-server на лету и через консоль, это переключить runlevel. Команда должна быть выполнена от root . - Для Slackware: init 3 - Для дистрибутивов с systemd: systemctl isolate runlevel3.target Вернуться в иксы. Для Slackware: init 4 - Для дистрибутивов с systemd: systemctl isolate graphical.target Переключить runlevel по умолчанию (при старте системы)- Для Slackware: 1. Под root запускаем mc и идем в /etc 2. Ищем там файл inittab и открываем его в редакторе. 3. Ищем строчки: # Default runlevel. (Do not set to 0 or 6) id:4:initdefault: Они обычно в начале файла. 4. Меняем 4 на 3 и сохраняем файл. Если надо X при старте - меняем 3 на 4 . Если что, обычно в файле есть комментарий-подсказка (на буржуйском). - Для дистрибутивов с systemd: Чтоб X был выключен по умолчанию: systemctl set-default runlevel3.target Чтоб X по умолчанию был включен: systemctl set-default multi-user.target Подробнее почитать о runlevelRunlevel в Unix/Linux КопияДругие способы завершить X-сервер через консоль.Опять же, повторюсь, стопроцентно это сработает только если X-server запущен вручную (или через скрипты), когда система находится в runlevel 3. - Придушить X-сервер совсем: killall Xorg - Более аккуратно придушить иксы (для систем с systemd). Надо отправить команду завершения оконному менеджеру. В общем виде: systemctl stop display-manager.service Вместо display-manager.service подставляем свой оконный менеджер (наверное, не все поддерживают, но у меня systemd нет, так что не тестировал): systemctl stop gdm - Способ для xfce : xfce4-session-logout --logout --display :0.0 Корректно срабатывает только с локальной консоли. Удаленно может не работать. Еще про способы выйти в "чистую" консоль из иксовВ некоторых системах до сих пор работает старый способ переключиться в голую консоль, не завершая X-сервер. Для этого надо нажать Ctrl+Alt+F2... F6 и вам откроется чистый терминал. На Ctrl+Alt+F7 обычно сидят сами иксы, и таким образом, можно к ним вернуться. А первый терминал ( Ctrl+Alt+F1) иксы занимают под служебные нужды. В некоторых системах для выхода из иксов срабатывает такой способ: 1. Переключиться в первую консоль ( Ctrl+Alt+F1) 2. Нажать Ctrl+C/Ctrl+BreakВ некоторых системах для выхода из иксов может сработать комбинация Ctrl+Alt+BackspaceВ системах, запускающихся в графическом runlevel по умолчанию, это можно использовать для перезагрузки графического окружения, если X зависли (как soft-restart в Windows 98). Так же можно использовать и команду killall Xorg Это репост с сайта http://tolik-punkoff.com Оригинал: http://tolik-punkoff.com/2020/01/25/vyhod-iz-x-cherez-konsol-i-zhelatelno-udalenno/
12/19/19 09:07 am
Установка и настройка I2P в Slackware Linux
Преамбула
I2P это такая скрытая пиринговая сеть, подробнее можно узнать в Википедии или на официальном сайте. В отличии от TOR, она обеспечивает не анонимный доступ в Интернет, а доступ к собственным ресурсам (сайтам, файлообменникам и т.д.), скрытым из обычной сети. Гейты в "большой" Интернет в ней есть, но они кривые, косые и пользоваться ими не рекомендуется. Расскажу, как ее установить и настроить на Slackware, заодно разрешив пользователям из локальной сети также получать к ней доступ. Установка JavaКлиент сети написан на Java, потому ее надо сначала установить. На официальном сайте есть рекомендации о необходимой версии: Java Runtime Version 7 or higher. (Oracle, OpenJDK, or IcedTea Java Version 7 or 8 recommended.Сама установка довольно проста: 1. Идем, например сюда2. Скачиваем jdk-8u162-i586-2gds.txz 3. Устанавливаем стандартным образом: installpkg jdk-8u162-i586-2gds.txz 4. Добавляем в автозагрузку (если вы не сделали отдельного скрипта для запуска сервера, то /etc/rc.d/rc.local ) пути к java: echo "Add JAVA paths..." export JAVA_HOME=/usr/lib/java export MANPATH="${MANPATH}:${JAVA_HOME}/man" export PATH="${PATH}:${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin" 5. Перезагружаем машину. 6. Вводим в консоли команду java без параметров. Если все было сделано правильно, то вы должны увидеть вывод краткой справки по параметрам java. Создание пользователя для I2PПонятно, что операции с пользователями надо делать под root или с sudo . 1. Создаем отдельную группу для I2P: groupadd i2pgrp 2. Создаем интерактивного (пока, потом мы вырубим ему всю интерактивность) пользователя, например i2psrv : useradd -g i2pgrp -m -d /home/i2psrv -s /bin/bash i2psrv где: -g i2pgrp - группа пользователя ( i2pgrp ) -m - создать домашний каталог -d /home/i2psrv - путь к домашнему каталогу ( /home/i2psrv ) -s /bin/bash - установить пользователю оболочку, в данном случае фиктивную ( /bin/bash ) i2psrv - имя пользователя 3. Задаем ему пароль: passwd i2psrv В интерактивном режиме повторяем пароль 2 раза, о сложности можно не беспокоиться - все равно потом отключим. Установка1. Скачиваем установщик для Linux с официального сайта2. Копируем в директорию пользователя ( /home/i2psrv ) и меняем владельца файла: chown i2psrv:i2pgrp i2pinstall_0.9.44.jar 3. Логинимся под новым пользователем. 4. Запускаем установку (через консоль): java -jar i2pinstall_0.9.44.jar -console 5. Приводят возможность выбрать язык: Select your language 0 [x] eng 1 [ ] bra 2 [ ] cat 3 [ ] ces ... Оставляем английский (нажимая ENTER). 6. Далее предлагают продолжить установку: Нажимаем 1 [ENTER] 7. Опять лицензия и всякая хрень: Нажимаем 1 [ENTER] 8. Выбор пути для установки. Поскольку устанавливаем в каталоге нового пользователя, пусть так и делает - нажимаем [ENTER] 9. Далее нажимаем O и [ENTER] (в прошлых версиях было меньше гемора и подтверждений, а сейчас словно анкету в ментовку работать заполняешь :) 10. Еще раз предлагают подтвердить, что все ОК (1 и [ENTER]) 11. Наконец, тебе говорят, что все ОК: ==================== Installation started Framework: 5.1.3-84aaf (IzPack) Platform: linux,version=4.4.14-smp,arch=x86,symbolicName=null,javaVersion=1.8.0_232 [ Starting to unpack ] [ Processing package: Base (1/1) ] [ Unpacking finished ] Installation finished On most systems, I2P can be started with:
/home/i2psrv/i2p/i2prouter start
If I2P does not start, please try:
/home/i2psrv/i2p/runplain.sh 12. Тебе говорят, что все совсем ОК: Installation was successful Application installed on /home/i2psrv/i2p [ Writing the uninstaller data ... ] [ Console installation done ] Расшаривание I2P-сервисов в локальной сети.Если вы намерены использовать I2P только на локальном компьютере, этот шаг можно пропустить. 1. Идем в файл /home/i2psrv/i2p/i2ptunnel.config , предварительно его куда-нибудь скопировав, и меняем в нем все 127.0.0.1 на адрес нашего компьютера в локальной сети (например на 192.168.0.20 , см. адрес вашего компьютера), таким образом все сервисы I2P будут доступны с любой машины в локальной сети. 2. В том же файле смотрим порты, если где-то у нас какой-то порт для чего-то занят, например на том же порту уже висит HTTP или TOR-proxy, смело меняем порт. Переключение пользователяI2P - порядочный сервис, и сам умеет переключать пользователя, под которым запускается. Некоторые даже рекомендуют завести двух пользователей, одного для запуска, другого для установки I2P, но мы, ради экономии времени, делать этого не будем - и запуск и установка будут под одним пользователем. Тем не менее, необходимо отредактировать скрипт i2prouter (в /home/ip2srv/i2p ): 1. Ищем строку, содержащую RUN_AS_USER= 2. Раскомментируем ее (удаляем # в начале строки). 3. Дописываем после знака = имя пользователя (в этом примере " i2psrv" ). Расшаривание Web-консолиОтслеживание статуса соединения с сетью I2P, ошибки и основные настройки доступны через Web-интерфейс, который запускается на локальной машине на порту 7657 , но если физического доступа к той машине, на которой установлен I2P нет (или лень), то можно управлять ей и с любого компьютера локальной сети. Внимание! Это не очень одобряется официальными инструкциями. По идее можно сделать безопасный SSL-туннель, как это описывалось в одной из старых инструкций. Но я опишу самый простой вариант, просто поменяю конфиг. Заходим в clients.config ( /home/i2psrv/i2p ), предварительно сделав бэкап. И опять меняем 127.0.0.1 на 192.168.0.20 , т.е. меняем адрес машины, по которому должна появиться консоль. Далее меняем clientApp.4.startOnLoad=true на clientApp.4.startOnLoad=false , т.к. на сервере нет смысла открывать панель управления после старта I2P. ( Дальнейшая настройка под катом )ПроверкаПереходим по адресу http://i2p-projekt.i2pI2P довольно медленная сеть и работает с некоторыми перебоями, так что если вместо сайта вы увидите надпись " Сайт недоступен. Возможно, сайт отключен, сеть перегружена или ваш маршрутизатор недостаточно интегрирован с другими пирами. Вы можете повторить операцию.", то действительно, скорее всего, операцию нужно повторить. Отключаем интерактив пользователю i2psrvНа самом деле интерактивный доступ к системе для пользователя i2psrv был нужен только на этапе установки сервиса I2P, и я оставлял его до конца настройки на случай, если I2P понадобится переустановить. Теперь консоль пользователю i2psrv более не нужна. Отключаем: Редактируем (под root 'ом) файл /etc/passwd . Находим в этом файле строку, начинающуюся с имени пользователя ( i2psrv ) и в конце строки меняем /bin/bash на /bin/false . Сохраняем файл. Что дальше?Остались нераскрытыми темы подписок (как добавлять I2P-сайты неизвестные вашему маршрутизатору I2P), интересные I2P-сайты, другие сервисы I2P, кроме WWW. Может быть когда-нибудь вернусь к этому вопросу, а пока рекомендую детально ознакомиться с документацией на сайте https://geti2p.net/, http://i2p-projekt.i2p и в консоли I2P. Это репост с сайта http://tolik-punkoff.com Оригинал: http://tolik-punkoff.com/2019/12/19/ustanovka-i-nastrojka-i2p-v-slackware-linux/
11/28/19 05:28 am
Установка и настройка tor-ноды
Установка tor1. Загружаем исходники tor отсюда я взял версию 0.4.2.4-rc посвежее. 2. Собираем пакет: - Распаковываем из архива каталог tor-0.4.2.4-rc со всеми подкаталогами - Переходим в этот каталог и выполняем последовательно: ./configure make checkinstall checkinstall нас спросит, какой пакет хотим создать ( Slackware [S], RPM [R] or Debian [D]? ), отвечаем s , далее вводим описание пакета, например tor и нажимаем два раза ENTER, после чего подтверждаем, что все верно (нажав ENTER еще раз) и checkinstall создаст пакет. 3. Можно сразу его установить: installpkg tor-0.4.2.4-rc-i386-1.tgz Создаем пользователя для torНегоже запускать tor под обычным пользователем, а тем более под root 'ом, потому создадим для него отдельного пользователя. Пользователь будет неинтерактивный, т.е. войти в систему с терминала он не сможет. 1. Добавляем группу, например torgroup : groupadd torgroup 2. Смотрим файл /etc/shells и проверяем, чтоб в файле была строка /bin/false , если ее нет - смело дописываем. 3. Создаем пользователя с именем, например, torusr : useradd -g torgroup -m -d /home/torusr -s /bin/false torusr где: -g torgroup - группа пользователя ( torgroup ) -m - создать домашний каталог -d /home/torusr - путь к домашнему каталогу ( /home/torusr ) -s /bin/false - установить пользователю оболочку, в данном случае фиктивную ( /bin/false ) torusr - имя пользователя 4. Создаем каталог для данных tor: cd /home/torusr mkdir .tordata и изменяем владельца созданного каталога на torusr chown torusr:torgroup .tordata Настройка tor-нодыВ каталоге /home/torusr создаем файл torrc и записываем в него следующие строки: SocksPort 9050 - порт на localhost , где будет висеть tor, и принимать на него запросы. Проще говоря, это порт прокси-сервера, который надо будет прописать, чтоб соединиться с сетью tor с локальной машины. Порт 9050 является портом по умолчанию, и назначается на localhost (127.0.0.1), если строки SocksPort будут отсутствовать в конфигурации. SocksPort 192.168.0.20:9660 - то же самое, только внутри локальной сети. Клиенты из локальной сети должны будут подключаться по адресу 192.168.0.20 и порту 9666 , чтобы использовать сеть tor. Tor организует только SOCKS5 прокси, как быть с браузерами, которым нужен HTTP, рассмотрим далее. SocksPolicy accept 192.168.0.0/24 SocksPolicy accept 127.0.0.1 SocksPolicy reject * Принимать запросы только из локальной сети и localhost'а. Log notice file /home/torusr/notices.log - файл, куда будет писаться лог tor'а RunAsDaemon 1 - запуск tor в режиме демона. DataDirectory /home/torusr/.tordata - путь для данных tor ORPort 9001 - порт, используемый для пересылки пакетов с других узлов. DirPort 9030 - порт, используемый для сервиса каталогов, т.е узел будет позволять получать информацию о других узлах tor, а не только транслировать трафик. Конечно, стоило бы облегчить жизнь пользователям, сидящим за сетевыми экранами и пустить трафик по портам 80 (8080) или 443, но я пока не стал. Впрочем, если вам будет надо - смотрите статью на Хабре ( копия) RelayBandwidthRate 1000 MB RelayBandwidthBurst 2000 MB - ограничение пропускной способности. Чем больше, тем лучше. Но настраивайте эти числа под свой канал, чтоб не загадить его трафиком tor совсем. Nickname PersonalChaosRelay - имя вашего релея (ноды) в базе tor. Можете придумать любое, но советую сначала проверить придуманное имя здесь, введя его в поиске. Если ничего не найдется, проздрабляю, ваш релей будет уникальным. ExitPolicy reject *:* ExitPolicy reject6 *:* - запрет использовать tor-ноду в качестве выходной. Для ГОРФ параметр строго обязательный. Примечание: в /usr/local/etc/tor находится файл torrc.sample с подробным описанием конфигурации. Пример файла конфигурации на PasteBinУстанавливаем файлу правильного владельца: chown torusr:torgroup torrc Запуск нодыЗапуск осуществляется следующей командой: sudo -u torusr tor -f /home/torusr/torrc Если помещать запуск в автозагрузку, то желательно указать полный путь к файлу tor : sudo -u torusr /usr/local/bin/tor -f /home/torusr/torrc Запуск в отдельном network namespace ( копия): ip netns exec provns sudo -u torusr /usr/local/bin/tor -f /home/torusr/torrc provns - имя network namespace Проверка работоспособностиМинут через 15-20 после запуска можно заглянуть в /home/torusr/notices.log , если в последних строках файла написано что-то типа: Self-testing indicates your ORPort is reachable from the outside. Excellent. Publishing server descriptor. Tor has successfully opened a circuit. Looks like client functionality is working. Self-testing indicates your DirPort is reachable from the outside. Excellent. Performing bandwidth self-test...done. значит порты ORPort и DirPort доступны извне, и нода нормально функционирует. Если же в логе что-то типа: Your server (x.x.x.x:9001) has not managed to confirm that its ORPort is reachable. Relays do not publish descriptors until their ORPort and DirPort are reachable. Please check your firewalls, ports, address, /etc/hosts file, etc. Your server (x.x.x.x:9030) has not managed to confirm that its DirPort is reachable. Relays do not publish descriptors until their ORPort and DirPort are reachable. Please check your firewalls, ports, address, /etc/hosts file, etc. значит порты недоступны из интернета (закрыты фаерволлом, нужно сделать проброс портов на роутере, порты закрыты провайдером) и нода не появится в списке нод и не будет принимать соединения. В режиме клиента все будет работать, т.е. клиенты из локальной сети смогут ей пользоваться для выхода в сеть tor Если все в порядке, то через несколько часов нода появится в базе данных, и можно будет проверить ее наличие здесь введя в поисковой строке на странице Nickname, который указали в конфиге. ( Настройка для клиентов под катом )Это репост с сайта http://tolik-punkoff.com Оригинал: http://tolik-punkoff.com/2019/11/26/ustanovka-i-nastrojka-tor-nody/
|