LINUX.ORG.RU

Сообщения Xintrea

 

Репозитарий (deb): куда засунуть версию ОС Linux?

 , , , ,

Имеется два самодельных репозитария: один для Astra 1.3, второй для Astra 1.6

Начальник неожиданно возбудился из-за того, что пакеты в этих репозитариях имеют одинаковые имена файлов, одинаковые названия пакетов и одинаковые версии (просто бинарники собраны соответственно для Astra 1.3 и Astra 1.6). Типа если перепутают репозитарии, то инсталляция накроется и путанница возникнет если, например, в Astra 1.3 пропишут репозитарий от Astra 1.6 и установят пакеты.

Он хочет каким-то образом сделать так, чтобы пакеты от одного дистра невозможно было поставить в другой дистр, или хотя бы чтоб при установке пакетная система сразу каким-то образом показывала, что пакеты с данным дистром несовместимы.

Я не очень представляю тонкости пакетной системы, хоть и собираю вручную пакеты и формирую репозитарий.

Мне было бы проще всего добавить информацию в версию пакета (поле Version). Сделать, например, в ней префикс, типа:

a13:2023.02.09-5
a16:2023.02.09-5

Но сдается мне, что если в Astra 1.3 прописать репозитарий от Astra 1.6, то, например, при обновлении версий пакет a13:2023.02.09-5 будет молча заменен на a16:2023.02.09-8 и ничего пакетная система не заметит и не предупредит. Да, и еще придется перелопатить все зависимости во всех пакетах, чтобы они тоже этот префикс содержали.

Менее удобно (в моем случае) было бы добавить версию дистрибутива просто в поле Description или в Origin, чтобы хотя бы видеть что пакет собран для определенного дистрибутива. Но это тоже всего лишь информационное поле, и проблему оно не решает.

Вопрос: куда впихнуть версию дистрибутива, для которого сделан пакет? Чтобы были решены проблемы, описанные выше? Или таковая задача полностью в принципе не решается?

Xintrea
()

Включить WQHD (2560x1440) на встройке Intel HD Graphics 4000 - возможно ли?

 , wqhd,

Прикупил монитор с разрешением 2560x1440 и 75Гц.

Мне его надо подключить к ноутбуку со встройкой Intel HD Graphics 4000. На ноуте разъем HDMI, провод соответствующий. Утилита xrandr нужного разрешения и частотки не показывает.

Судя по выводу xrandr, монитор подключен как HDMI1:

HDMI1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 600mm x 340mm

Сгенерировал нужный модлайн:
cvt 2560 1440 75

# 2560x1440 74.94 Hz (CVT 3.69M9) hsync: 112.86 kHz; pclk: 397.25 MHz
Modeline "2560x1440_75.00"  397.25  2560 2760 3040 3520  1440 1443 1448 1506 -hsync +vsync

Создал режим:
xrandr --newmode "2560x1440_75.00"  397.25  2560 2760 3040 3520  1440 1443 1448 1506 -hsync +vsync

Зарегистрировал:
xrandr --addmode HDMI1 2560x1440_75.00

В списке xrandr он появился. Переключаюсь:
xrandr --output HDMI1 --mode 2560x1440_75.00

Монитор на пару секунд гаснет, потом возвращается в прежнее разрешение и в консоль выводится ошибка:
xrandr: Configure crtc 1 failed

Дальше продвинуться не смог.

Что не так с конфигурацией? Карточка не могет такое разрешение? Разъем не тот? Провод не тот? Или все-таки можно настроить?

Xintrea
()

Как в ssh+X11 перетянуть к себе окно программы?

 ,

Если зайти на компьютер удаленно с поддержкой сессии X11 (опция -X):

ssh -l user -X remote.server.lo

... то можно запустить GUI-программу на сервере, но с отображением ее окна на своем десктопе:
qpdfview &

А можно запустить GUI-программу на сервере так, чтобы ее окно оставалось на удаленном сервере:
DISPLAY=:0 qpdfview &

Вопрос 1: а как «перетянуть» к себе на десктоп окно, которое открыто на удаленном сервере?

Вопрос 2: а как «перекинуть» окно, которое открыто на своем десктопе, обратно на сервер?

Note: использовать VNC не предлагать, потому что fly-dm, а в нем VNC невозможен.

Xintrea
()

Как узнать пакет при ошибке «недоступен, но упомянут в списке зависимостей»?

 , ,

Есть, к примеру сообщение при инсталляции через apt:

apt-get install qt5-default
...
Пакет qt5-default недоступен, но упомянут в списке зависимостей другого пакета.

Вопрос: как заполучить имена пакетов, в зависимостях которых которых упомянут qt5-default?

Xintrea
()

На что сослаться при возврате монитора?

 , , , пиксель

Монитор относится к технически сложным устройствам. Возврат таких устройств возможен только при наличии технической неисправности. Наличие битых пикселей в количестве до 2-5 штук (в зависимости от класса) не является неисправностью.

Значит, при обнаружении битых пикселей возвращать монитор нужно по другой причине.

Вопрос: какие есть надежные причины для возврата монитора, чтобы без лишних вопросов, согласно действующему законодательству, вернуть товар в магазин?

Xintrea
()

Что означает слово Policy в утилите Apt?

 , , ,

По неизвестной причине, ни в команде man apt, ни в команде apt help нет описания опции policy (зато есть коровья СУПЕРСИЛА, ведь она куда важнее документации утилиты, которая управляет всеми файлами программ в системе).

И вот я вижу следующую команду:

apt policy linux-headers-generic

и даже не могу понять что она делает то. Что она означает? «Политика» - на что? «Стратегия» - чего? «Курс» - куда? «Полис» - зачем?

Вроде как эта команда то ли управляет, то ли только показывает какие-то параметры пакетов. Но подробностей найти не смог. Для просмотра информации о пакетах официально существуют опции list и show.

Что подразумевается под этой политикой/стратегией и для чего она нужна?

Xintrea
()

Зачем нужны круглые скобки ( EXPRESSION ) в утилите test?

 , , ,

В документации на утилиту test написано:

SYNOPSIS
       test EXPRESSION
       test
       [ EXPRESSION ]
       [ ]
       [ OPTION

DESCRIPTION
       Exit with the status determined by EXPRESSION.

       --help display this help and exit

       --version
              output version information and exit

       An  omitted  EXPRESSION  defaults  to false.  Otherwise, EXPRESSION is true or false 
       and sets exit status.  It is one of:

       ( EXPRESSION )
              EXPRESSION is true

И непонятно, нужно ли выражение обязательно заключать в круглые скобки. Вроде работает и без них. Но тогда зачем нужны круглые скобки?

А если будут составные условия (-o, -a) то тогда нужно писать каждое выражение в круглых скобках или нет?

Xintrea
()

PulseAudio все еще не готов для десктопа

 , ,

Установил себе небезызвестный SunVox, думаю, щас поковыряюсь с трекерной музыкой в современной программе. Как я измучился... Все пердит, заикается, проигрывается с неправильной скоростью. Затяжные периоды глюков самопроизвольно меняются на несколько минутные периоды стабильности, после чего опять пердеж и заикания...

Написал на официальный форум, и мне ответили:

https://warmplace.ru/forum/viewtopic.php?f=12&t=6298

Как бы я не ожидал другого услышать, но блин так обидно, что в Линупсе до сих пор нет просто работающего звукового стека.

Xintrea
()

Как создать многопоточную нагрузку на проц стандартными средствами Linux?

 , , ,

Мне нужно создать такую нагрузку на процессор, чтобы один процесс создал кучу потоков на все ядра микропроцессора, и htop показал число ~800% для 8-ми поточного процессора.

Пока что придумал команду:

while true; do dd if=/dev/urandom count=10M bs=1 | xz -9 -T8 > /dev/null ; done
Но эта команда не создает нагрузки более ~118%.

Что еще можно придумать?

Xintrea
()

После разлогирования пользователя через pkill, не работает вход в систему

 ,

Система: Debian GNU/Linux 11 Stable, LXDE.

Выгоняю пользователя из графической сессии командой:

pkill -u username
Вроде все хорошо: сессия завершается, появляется окно ввода логина-пароля.

Поля ввода в этом окне рабочие. Но после ввода логина-пароля, ничего не происходит, новая сессия не открывается. Никаким пользователем зайти невозможно, можно только переключиться в консоль Alt+F1, зайти рутом и перезагрузить компьютер. После перезагрузки вход пользователей снова работает.

Почему так происходит? Как исправить?

Xintrea
()

Как в Ansible отфильтровать список в with_items ?

 ,

У меня имеется список репозитариев, который сделан примерно так:

gitRepos
- [ true,  "doxygen_documentation.git", "master", "doxygen_doc"  ]
- [ false, "idk.git",                   "qt5",    "idk"          ]
- [ true,  "binke.git",                 "master", "binke_plugin" ]
...

Чтобы делать действия с репозитариями, используется with_items по данному списку. Раньше в этом списке не было первого столбца true/false, и действия выполнялись для всех элементов списка gitRepos:
- name: Создание/обновление репозитариев
  git: repo="{{ item[nRepoNetworkPath] }}" dest="{{ gitReposPath }}/{{ item[nDirectoryName] }}"
  with_items:
  - "{{ gitRepos }}"

Теперь появился первый столбец, и в with_items надо прописать фильтр, который уберет строки, в которых первый элемент равен false. Условие when использовать нежелательно, так как в нем используются условия по другим переменным, и будет очень заморочено.

Но я читаю документацию:

https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_filters.html

И не вижу там возможности фильтровать/преобразовывать список так, чтобы в нем исключить элементы по условию. Как это можно сделать?

Xintrea
()

Как в GCC выяснить, какие языки он поддерживает?

 

Не могу найти опцию, которая бы показала перечень имен «модулей», которые отвечают за разные языки.

Ну, то есть, надо узнать перечень языков в том виде, которые обозначаются термином program в опции -print-prog-name.

Опытным путем найдены обозначения:

  • cc1plus - язык Си++
  • cpp - язык Си (видимо, как-то связано с аббревиатурой C Pre Processor)

А как узнать у gcc, какие еще языки поддерживает текущая инсталляция gcc?

Xintrea
()

Как сделать вычислимую переменную в /group_vars/all.yml в зависимости от os.path.isdir() ?

 ,

В jinja - шаблонах нельзя использовать привычные методы стандартных Python-модулей, например os.path.isdir(...). Вместо этого предлагается выполнить задачу с модулем stat, в ней вычислить значение, а потом его использовать:

https://stackoverflow.com/questions/43522337/defining-os-path-in-ansible-jinj...

А как тогда установить значение переменной в файле /group_vars/all.yml в зависимости от результата работы stat? Ведь синтаксис этого файла не предполагает исполнение задачи, и в нем только устанавливаются значения переменных?



Перемещено hobbit из general

Xintrea
()

Почему grep не фильтрует сообщения dd?

 , , , ,

Даю такую команду:

$ dd if=/dev/zero count=10000 bs=50000 of=/tmp/zero.bin | grep 10000
10000+0 записей получено
10000+0 записей отправлено
500000000 байт (500 MB, 477 MiB) скопирован, 5,00764 s, 99,8 MB/s
И ожидаю что третьей строки не будет видно, она же не попадает под выражение в grep.

Но третья строка все равно выводится в консоль.

Почему?

Xintrea
()

Почему systemctl list-units не показывает сервис ntp, хотя он есть?

 , systemctp, ,

Обычно чтобы понять, какие сервисы есть в системе, я всегда пользовался командой:

systemctl list-units --all

Но сейчас выяснилось, что эта команда показывает не все сервисы. Например, она не покажет сервис ntp, хотя он существует:
systemctl status ntp
● ntp.service - LSB: Start NTP daemon
   Loaded: loaded (/etc/init.d/ntp; generated; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:systemd-sysv-generator(8)

Почему полный список юнитов не отображает все юниты? Чем юнит ntp так отличается от других?

Xintrea
()

Восстановить работу gitweb. Случайно грохнул /etc/apache2/conf-enabled/gitweb.conf

 , gitweb, ,

Пришел сегодня ранёхонько, стал ремонтировать вот это: Apache показывает ошибку 403 на некоторых файлах

Увидел, что в файле /etc/apache2/conf-enabled/gitweb.conf кривоватенькая регулярка, которая, видимо, отвечала за доступ/обработку dot-каталогов ".git" или что-то в этом роде (сервер настраивал не я). Чтобы проверить, что проблема в Apache-модуле gitweb, решил его временно отключить. И вместо того чтоб удалить линк в /conf-enabled, спросоня удалил основной файл в /conf-available.

Отключить раздел чтоб восстановить файл не могу, на сервере куча всего крутится. Поэтому восстановил файл из пакета. И теперь его надо настроить «как было».

По-дефолту он выглядит так:

<IfModule mod_alias.c>
  <IfModule mod_mime.c>
    <IfModule mod_cgi.c>
      Define ENABLE_GITWEB
    </IfModule>
    <IfModule mod_cgid.c>
      Define ENABLE_GITWEB
    </IfModule>
  </IfModule>
</IfModule>

<IfDefine ENABLE_GITWEB>
  Alias /gitweb /usr/share/gitweb

  <Directory /usr/share/gitweb>
    Options +FollowSymLinks +ExecCGI
    AddHandler cgi-script .cgi
  </Directory>
</IfDefine>


Единственное что я помнил, что репозитарии размещены в каталоге /home/git (этот каталог так же прописан и в /etc/gitweb.conf). А обращение к главной странице в браузере должно происходить по наш_домен/git. Поэтому я подправил настройки:
<IfDefine ENABLE_GITWEB>
  Alias /git /home/git

  <Directory /home/git>
    Options +FollowSymLinks +ExecCGI
    AddHandler cgi-script .cgi
  </Directory>
</IfDefine>

Перезапускаю Apache2 (версия 2.4, вестимо). И получаю 403 ошибку:
Forbidden
You don't have permission to access this resource.

В общем, судорошно соображал что как крутить, курил логи, не одмин я совсем, Апач лет десять назад запускал... Наконец заставил работать веб-морду. Конфиг получился такой:
<IfDefine ENABLE_GITWEB>

  # Turning on mod rewrite
  RewriteEngine on

  # Make the front page an internal rewrite to the gitweb script
  RewriteRule ^/git/$  /cgi-bin/gitweb.cgi [L,PT]

  # Make access for "dumb clients" work
  RewriteRule ^/git/(.*\.git/(?!/?(HEAD|info|objects|refs)).*)?$ /cgi-bin/gitweb.cgi%{REQUEST_URI}  [L,PT]

  Alias /git /home/git
  <Directory /home/git>
    Options +FollowSymLinks +ExecCGI
    AddHandler cgi-script .cgi

    Require all granted

    # DirectoryIndex gitweb.cgi
    DirectoryIndex /cgi-bin/gitweb.cgi

  </Directory>
</IfDefine>

Но теперь осталась проблема: недоступны ресурсы типа картинок, js-файлов и css-сок. Например, запросы:

http://наш_сервер/git/static/gitweb.css
http://наш_сервер/git/static/gitweb.js

Возвращают ошибку 404.

Вопрос: Как докрутить конфиг, чтобы эти ресурсы стали доступны?

Xintrea
()

Apache показывает ошибку 403 на некоторых файлах

 , , ,

Привет, народ.

Имеется репозитарий, который выложен на HTTP сервере. Проблема в том, что некоторые файлы Apache не отдает с ошибкой 403. Например:

http://192.168.10.251/astra_rep/se17devupdate2/pool/main/libr/libreoffice/libreoffice-wiki-publisher_1.2.0+LibO7.2.7-0ubuntu0.21.10.1~bpo20.04.1+ci202207041218+astra4_all.deb

http://192.168.10.251/astra_rep/se17devupdate2/pool/main/l/linux-firmware/linux-firmware_20220329.git681281e4-0ubuntu1+ci202207182106+astra2_all.deb

Первый файл, с более длинным именем и путем - отдается. А второй файл, с более коротким именем и путем - нет. Какая-то дичь. Я не могу понять почему. Наткнулся на это ошибку из-за того, что apt-get install не мог получить именно второй пакет:
Ошб:1 http://192.168.10.251/astra_rep/se17devupdate2 1.7_x86-64/main amd64 linux-firmware all 20220329.git681281e4-0ubuntu1+ci202207182106+astra2
  403  Forbidden [IP: 192.168.10.251 80]
E: Не удалось получить http://192.168.10.251/astra_rep/se17devupdate2/pool/main/l/linux-firmware/linux-firmware_20220329.git681281e4-0ubuntu1+ci202207182106+astra2_all.deb  403  Forbidden [IP: 192.168.10.251 80]
E: Не удалось получить некоторые архивы; возможно, нужно запустить apt-get update или попытаться повторить запуск с ключом --fix-missing?
Чтение списков пакетов… Готово

Вот как происходит получение файлов через wget (первый - нормально, второй - с ошибкой):
$ wget "http://192.168.10.251/astra_rep/se17devupdate2/pool/main/libr/libreoffice/libreoffice-wiki-publisher_1.2.0+LibO7.2.7-0ubuntu0.21.10.1~bpo20.04.1+ci202207041218+astra4_all.deb"
--2022-11-17 16:39:46--  http://192.168.10.251/astra_rep/se17devupdate2/pool/main/libr/libreoffice/libreoffice-wiki-publisher_1.2.0+LibO7.2.7-0ubuntu0.21.10.1~bpo20.04.1+ci202207041218+astra4_all.deb
Подключение к 192.168.10.251:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 1613088 (1,5M) [application/x-debian-package]
Сохранение в: «libreoffice-wiki-publisher_1.2.0+LibO7.2.7-0ubuntu0.21.10.1~bpo20.04.1+ci20220704
1218+astra4_all.deb»
libreoffice-wiki-publisher_1.2.0+L 100%[=============================================================>]   1,54M  --.-KB/s    in 0,1s
2022-11-17 16:39:46 (11,9 MB/s) - «libreoffice-wiki-publisher_1.2.0+LibO7.2.7-0ubuntu0.21.10.1~bpo20.04.1+ci202207041218+astra4_all.deb» сохранён [1613088/1613088]

$ wget "http://192.168.10.251/astra_rep/se17devupdate2/pool/main/l/linux-firmware/linux-firmware_20220329.git681281e4-0ubuntu1+ci202207182106+astra2_all.deb"
--2022-11-17 16:39:56--  http://192.168.10.251/astra_rep/se17devupdate2/pool/main/l/linux-firmware/linux-firmware_20220329.git681281e4-0ubuntu1+ci202207182106+astra2_all.deb
Подключение к 192.168.10.251:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 403 Forbidden
2022-11-17 16:39:56 ОШИБКА 403: Forbidden.


Я проверил, файл linux-firmware_20220329.git681281e4-0ubuntu1+ci202207182106+astra2_all.deb существует, путь правильный.

Права на файлы идентичные:
$ ls -l ./pool/main/libr/libreoffice/libreoffice-wiki-publisher_1.2.0+LibO7.2.7-0ubuntu0.21.10.1~bpo20.04.1+ci202207041218+astra4_all.deb
-rw-r--r-- 1 security security 1613088 сен 29 14:06 ./pool/main/libr/libreoffice/libreoffice-wiki-publisher_1.2.0+LibO7.2.7-0ubuntu0.21.10.1~bpo20.04.1+ci202207041218+astra4_all.deb

$ ls -l ./pool/main/l/linux-firmware/linux-firmware_20220329.git681281e4-0ubuntu1+ci202207182106+astra2_all.deb
-rw-r--r-- 1 security security 214471224 сен 29 14:04 ./pool/main/l/linux-firmware/linux-firmware_20220329.git681281e4-0ubuntu1+ci202207182106+astra2_all.deb


Права на дикретории идентичные:
$ ls -l ./pool/main/libr | grep "libreoffice$"
drwxr-xr-x 2 security security 16384 окт  4 20:13 libreoffice

$ ls -l ./pool/main/l | grep "linux-firmware$"
drwxr-xr-x 2 security security 4096 окт  4 20:12 linux-firmware


Но почему-то один файл отдается, второй - нет. Что еще и где надо проверить, чтобы понять почему Apache на этом файле спотыкается?

Xintrea
()

Посоветуйте монитор 1920x1200, аналог HP Z24n G2

 , ,

Нынче нет в продаже моников HP Z24n G2. В свое время не купил, теперь найти не могу. В DNS есть HP Z24n G4, но у него вертикальное разрешение меньше - 1920x1080.

Основные требования:

- разрешение 1920x1200
- матрица IPS
- управление подсветкой по току, а не ШИМ, чтобы не мерцало
- желательно (но не критично) наличие разъема DVI

Или подскажите где можно купить именно модель HP Z24n G2. Чтобы можно было прийти, открыть коробку, включить, проверить наличие битых пикселей, и только потом взять. А то по почте пришлют с матрицей на которой 3 пикселя будут гореть на постоянку, и менять не будут, типа это допустимо. Локация СПБ.

Xintrea
()

Непонятки с репозитариями Astra Linux

 , , ,

Привет, народ.

Имеется вот такая страница в официальной Astra Linux Wiki:

https://wiki.astralinux.ru/pages/viewpage.action?pageId=158598882

На этой странице имеются http-ссылки на репозитарии и прочие ресурсы, например такие:

https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main/
https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.1/iso/

Проблема в том, что эти ссылки не существуют в реальности, везде ошибка 404. Мы написали в техподдержку, что в данной статье некорректные ссылки. Вот какой ответ получили, в три абзаца, абзацы я пронумеровал:

1. Согласно информации из приложенной статьи ссылки репозиториев не должны быть доступны для Astra Linux Special Edition.

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

3. Помимо доступности протоколов HTTPS и HTTP для того, чтобы было возможно открыть ссылку в браузере и просмотреть содержимое репозитория так, как это делается в файловом менеджере, в репозитории должна быть включена автоматическая индексация содержимого (autoindex). Автоматическая индексация поддерживается в репозиториях Astra Linux Common Edition и не поддерживается в репозиториях Astra Linux Special Edition.



И я ничего не могу понять из этой белиберды.

Абзац 1 - с чего бы ссылки репозитариев «не должны быть доступны для Astra Linux Special Edition»? Ссылки вообще-то доступны кому угодно у кого есть интернет. Что значит недоступны для Astra Linux SE? Что они хотели сказать этим предложением?

Абзац 2 и 3 техподдержка тупо скопировала в разделе Протоколы передачи интернет-репозиториев Astra Linux с той же страницы официальной Wiki.

Вопрос: у нас возникло предположение, что это значит, что веб-сервер настроен так, что он не отдает HTML-представление списка файлов при запросе директорий, относящихся к 1.7. Но должен отдавать файлы если они запрашиваются напрямую.

Чтобы проверить это предположение, я проверил ссылки на файлы:

https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main/Release
https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main/Release.gpg
https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main/binary-amd64/Packages.gz
https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main/binary-amd64/Release

https://dl.astralinux.ru/astra/stable/1.7_x86-64/main/Release
https://dl.astralinux.ru/astra/stable/1.7_x86-64/main/Release.gpg
https://dl.astralinux.ru/astra/stable/1.7_x86-64/main/binary-amd64/Packages.gz
https://dl.astralinux.ru/astra/stable/1.7_x86-64/main/binary-amd64/Release

Но все они возвращают 404. Может я неправильно предположил какие файлы могут быть. А может быть, путь, начинающийся с https://dl.astralinux.ru/astra/stable/1.7_x86-64/repository-main/... действительно не существует. Как это можно однозначно проверить?



Перемещено hobbit из general

Xintrea
()

15 лет без кулхацкеров: наконец-то кто-то засунул троян. Но как?

 , ,

Имею старенький сайто с 9-м Debian Linux и nginx + php-fpm. Сайт самописный, не имеет всяких wordpress-сов или jooml-ов. Фреймверк - Codeigniter-2. Из стороннего - имеется форум punBB 1.4.6 с самодельной капчей.

Обнаружил случайно, что 27 октября 2022 в /tmp каталоге сайта каким-то образом оказался интересный файл с именем phphaATEM. Пользователь и группа у него www-data.

Вот что про него сказал trendmicro посредством virustotal:

https://www.trendmicro.com/vinfo/us/threat-encyclopedia/malware/Backdoor.PHP....

Свеженькая хреновина, от October 18, 2022.

Посмотрел access-лог по времени создания файла, там ничего сверхестественного не увидел, сплошные GET-запросы, один POST-запрос какого-то робота:

https://pastebin.com/raw/8Cuh755E

Я расковырял всякие обфускации, достал PHP-шный код. Оказалось что это кулхацкерская консоль управления файлами через WEB. Никаких ссылок в коде не обнаружил, деструктивного кода тоже. Вот собственно сам код:

https://hastebin.com/qujigumadu.php

Я его даже скопировал в каталог web-сервера и зашел на эту страницу. Открылась web-консоль. Ну консоль как консоль: управление файлами, запуск шелл-команд, информация о хосте, прочие дополнительные инструменты.

Собственно, вопрос: как понять, каким макаром эта штука оказалась на хосте? Что нужно донастроить, чтоб убрать дырку? Обновиться до Debian 11 не могу, потому что в нем уже PHP5 нет, а код весьма старый.

Вопрос второй - а можно ли узнать, смогли ли этой консолью воспользоваться? Я посмотрел логи - нигде доступа к /tmp или phpha* нет. Файлы самого сайта вроде как нетронутые.

Xintrea
()

RSS подписка на новые темы