LINUX.ORG.RU

Избранные сообщения dnb

grex 1.2.0 — генератор регулярных выражений

Новости — Разработка
Группа Разработка

Вышла новая версия библиотеки и командной утилиты grex 1.2.0, которая позволяет создавать регулярное выражение из предоставленных пользователем тестовых данных. Созданное регулярное выражение имеет синтаксис PCRE.

grex начинался как порт JavaScript-утилиты regexgen и написан на языке программирования Rust.

>>> Подробности

 , , , ,

dotcoder ()

Покритикуйте мой скрипт для разархивации архивов PostgreSQL

Форум — Admin

Скрипт архивации тут

# cat /root/do_restore.sh
#!/bin/bash

PORT=5433
USERNAME='dbadmin'
SERVERNAME='localhost'
ARCHIVEDIR='/incrimental'
NEWDBNAME='';
OLDDBNAME='';
ARCHIVEDATE='';
FILETORESTORE=''

if [[ $1 != '' ]]
then
    NEWDBNAME=$1
else
    echo "Enter new DB name as first parametr"
    exit
fi

if [[ $2 != '' ]]
then
    OLDDBNAME=$2
else
    echo "Enter DB name in archive"
    exit
fi

if [[ $3 != '' ]]
then
    ARCHIVEDATE=$3
else
    echo "Enter date in forman YYYY-mm-dd"
    exit
fi

if psql -U $USERNAME -h $SERVERNAME -p $PORT -lqt | cut -d \| -f 1 | grep -qw $NEWDBNAME
then
    echo "Database with this name exists on this cluster"
    exit
fi

DBLIST="$(ls $ARCHIVEDIR/$OLDDBNAME | grep -E "^${OLDDBNAME}.*$ARCHIVEDATE.*(.delta|.dump.gz)\$")"

if [[ "$DBLIST" = '' ]]
then
    echo "There is no file to restore"
    exit
fi


index=1
for var in $DBLIST
do
    echo "${index} $var"
    index=$(($index+1))
done

echo -n "Enter the number of archive in this list "

read answer

index=1
for var in $DBLIST
do
    if [[ $index = $answer ]]
    then
        FILETORESTORE=$var
        echo "$FILETORESTORE"
        break
    fi
    index=$(($index+1))
done

filetype=0

if file $ARCHIVEDIR/$OLDDBNAME/$FILETORESTORE | grep -qw "rdiff network-delta data"
then
    filetype=1
fi

if file $ARCHIVEDIR/$OLDDBNAME/$FILETORESTORE | grep -qw "PostgreSQL custom database dump"
then
    filetype=2
fi

if file $ARCHIVEDIR/$OLDDBNAME/$FILETORESTORE | grep -qw "gzip compressed data"
then
    filetype=3
fi


case "$filetype" in
    1)
        echo "rdiff network-delta data"
        SERIALNUM=$(echo "$FILETORESTORE" | sed 's/^.*'"${OLDDBNAME}"'_//;s/_daily.*//')
        echo $SERIALNUM
        ORIGINAL=$(find $ARCHIVEDIR/$OLDDBNAME/*$SERIALNUM*.dump.gz)
        echo $ORIGINAL
        gunzip -c $ORIGINAL > $ORIGINAL.decompressed
        /usr/bin/rdiff patch $ORIGINAL.decompressed $ARCHIVEDIR/$OLDDBNAME/$FILETORESTORE $ORIGINAL.restored
        rm $ORIGINAL.decompressed
        psql -U $USERNAME -h $SERVERNAME -p $PORT -c 'create database '$NEWDBNAME -d postgres
        psql -h $SERVERNAME -U $USERNAME -p $PORT -d $NEWDBNAME < $ORIGINAL.restored
        rm $ORIGINAL.restored
        ;;
    2)
        echo "PostgreSQL custom database dump"
        psql -U $USERNAME -h $SERVERNAME -p $PORT -c 'create database '$NEWDBNAME -d postgres
        pg_restore -h $SERVERNAME -U $USERNAME -p $PORT -d $NEWDBNAME -w -Fc $ARCHIVEDIR/$OLDDBNAME/$FILETORESTORE
        ;;
    3)
        echo "gzip compressed data"
        psql -U $USERNAME -h $SERVERNAME -p $PORT -c 'create database '$NEWDBNAME -d postgres
        gunzip < $ARCHIVEDIR/$OLDDBNAME/$FILETORESTORE | psql -h $SERVERNAME -U $USERNAME -p $PORT -d $NEWDBNAME
        ;;
    *)
        echo "Undefined file type"
        exit 0
        ;;

Спасибо всем кто помогает

 

Shulman ()

Быстрое считывание произвольной части большого файла

Форум — Development

Представим что у нас есть файл размером * 100500 оперативной памяти, находится он на HDD в ext4 фс. Обычное считывание со смещением на N будет происходить так: открываем файл, читаем, считаем прочитанное по байту, если прочитанное равно началу смещения, то помещаем [N:] в буфер и считаем пока прочитанное не станет равно концу смещения [:N].

Допустим у нас есть файл-индекс по полю Name, где записан указатель на начало и конец смещения.

Правильно ли я понимаю процесс считывания?

Правильно ли я понимаю схему выборки?

Какие есть способы хакинга чтобы прочитать N байт из большого файла, где N произвольно или ближе к концу файла?

Немного сумбурно, буду признателен за любые ответы и ссылки. Спасибо.

 

dnb ()

Сравнительный анализ допуска Linux и Windows к работе с информацией ограниченного доступа

Новости — Безопасность
Группа Безопасность

Опубликован обзор, в котором обобщены все сведения о сертификации ФСТЭК, Минобороны и ФСБ различных дистрибутивов Linux в России в сравнении с операционными системами Windows.

В результате получена весьма любопытная информация: операционные системы Microsoft Windows не могут использоваться для обработки сколько-нибудь важной конфиденциальной информации.

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

С другой стороны, рядом российских компаний проведена колоссальная работа по созданию на базе операционных систем GNU/Linux действительно надежных российских операционных систем.

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

Хотя коммерческие организации всегда стремились применять новейшие технологии и не меньшим образом берегли свои секреты — в России они почему-то существенно отстали даже от консервативных военных.

Работа рекомендуется для компаний по внедрению средств защит информации и оказывающих услуги на рынке аттестации автоматизированных рабочих мест.

Скачать обзор (PDF)

>>> Подробности

 , , , ,

Cogniter ()

подключившись по ssh, запустить GUI прогу на удаленной машине

Форум — General

привет!

подключился по ssh как root(нужно именно как root) к удаленной машине. на удаленной машине есть xserver, он запущен и работает как надо.

вопрос в том, как в данной ситуации запустить GUI прогу на удаленном компе чтоб она отображалась на удаленном компе?

сейчас получаю ошибку: XOpenDisplay: unable to open display

спасибо.

 ,

niXman ()

музыка для deadbeef

Форум — Talks

накидайте классической музыки, эмбиента (можно в сочетании) и киберпанка.
например:
Свиридов - Весна
Jeremy Soule - Dungeon Siege
Juraj Karkus - Portland
что-нибудь динамичное, эмоциональное или атмосферное.

Перемещено tailgunner из desktop

 , ,

Deleted ()

Проверить существование имейл адресов непосредственно у SMTP сервера

Форум — Development

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

rcpt to: recipient@example.com
сервер скажет либо:
250 2.1.5 Ok

либо

550 5.1.1 <recipient@example.com>: Recipient address rejected: User unknown in virtual mailbox table

Отслеживать, конечно же, будем код ответа. Если 250 - значит ок (с какой-то долей погрешности), если не 250 - значит считать, что такого пользователя нет. После этого от сервера отключаемся

В исходной хтмл форме будет формироваться десяток возможных вариантов имейла исходя из имени и фамилии пользователя, в идеале надо проверить существование всех вариантов. Предполагается сделать это вебдванольненько, т.е. использовать асинхронные джаваскрипт запрос с группой имейлов, упакованных, скажем, в JSON. А серверная часть должна оптимальным образом без особого палева проверить наличие почтовых адресов и отдать ответ.

А теперь суть вопроса: как лучше лучше всего сделать серверную часть и ее взаимодействие с браузерной? По одному конекту на каждый адрес - глупо. Не хотелось бы таким подозрительным поведением провоцировать бан.

Спросить в пределах одного подключения десяток адресов - отличная идея. Но тогда надо сразу знать все эти десять адресов. Тест гугловых смтп серверов показал, что они отвечают примерно с секундной задержкой. Нехорошо заставлять пользователя ждать целых 10 секунд. Но если приходится, то уж хоть по одному адресу отмечать - прошел он валидацию или нет. Но если получать ответ по каждому имейлу, то тогда придется делать по конекту на каждый имейл.

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

azure ()

mx запись и автонастройка почты в клиенте

Форум — Admin

Если создавать новую учётную запись почты например в thunderbird, то иногда он по адресу почты правильно подставляет адрес почтового сервера. Например если domain.ru обслуживается гуглём или яндексом то указываются их почтовые сервера, типа: imap.yandex.com и smtp.yandex.com. При этом mx запись отличается: mx.yandex.net. Впрочем, thunderbird здесь сразу говорит «конфигурация найдена в базе isp в mozilla». По видимому он читает mx запись и по ней находит у себя правильные сервера.

Если мы захотим сделать почту на произвольном домене второго уровня то он подставит mail.domain.ru. Можно предположить что он опирается на mx запись. По крайней мере принятое решение совпадает с ней. Или просто для domain.ru столько раз настраивали почту что он запомнил, а то и внёс в свою базу?

Но когда я сделал домен третьего уровня, определять правильно он перестал. Запись в зоне выглядит так:

subdomain          IN      A       1.2.3.4
subdomain          IN      MX      10 mail2
nslookup возвращает правильное значение. Это я что-то не знал да забыл или thunderbird опирается на некую свою внутреннюю логику? На мой взгляд следует ожидать подстановки в качестве сервера значение mx записи (как, предположительно, он поступил во втором случае), исключая случаи записанные во внутренней базе данных.

Хотел сравнить с штатным клиентом андроид но у него вообще никакого автоопределения нет, во всех случаях подставляет в качестве почтового сервера domain.ru. Да, и чтоб два раза не вставать, нет ли возможности для андроида описать настройки в некоем файле и открыть этот файл почтовым клиентом?

 , ,

sin_a ()

Протектор исполняемых файлов

Форум — Development

Под винду есть куча всяких протекторов и прочего что может оттянуть момент написания кряка. Есть ли действительно годные линуксовые решения?
интерес академический

 , , ,

nyka ()

Покажите свой make.conf

Форум — Desktop

$SUBJ. Нужно для использования в качестве примера.

 ,

Valkeru ()

Чем плох этот %яп%

Форум — Talks

Навеяно темой: Чем плох Go?

Впервые тред на лоре не перешел в срач между rust и c++, и даже, местами была интересная критика. Не знаю сможем ли повторить, но все же спрошу (выбирайте яп на ваш вкус).

Чем плох:

  • 1) Python
  • 2) JavaScript (именно бэкенд node.js)
  • 3) PHP
  • 4) Java
  • 5) Kotlin
  • 6) Scala
  • 7) Dart
  • 8) C#
  • 9) Swift
  • 10) C
  • 11) C++
  • 12) Rust
  • 13) D
  • 14) Go
  • 15) ...любой другой язык, о котором вы не смогли промолчать...

Перемещено tailgunner из development

 ,

wist512 ()

Нужно выкачать социальную сеть

Форум — Development

Помогите с концептом или ткните на пример, если такой есть. Для академической задачи по BigData надо выкачать весь фэйсбук\вконтакт, информации что доступна без регистраций на страницах пользователей вполне хватит. Сразу вижу следующие вопросы: 1. Легально ли это? Не нарушает ли это законы РФ\США\Других стран? 2. Я так понимаю что надо очень быстрый интернет, то есть арендовать выделенный сервер на гигабитами в секунду. Не забанят ли за это хостеры? 3. Не забнят ли «по IP» служба безопасности социальных сетей? Не нарушает ли это правила социальных сетей? 4. Может кто знает с чего начать? Это должен быть shell script с использованием wget или есть специальные инструменты для этого?

 

bigfrogg ()

Building Tiny Rust Binaries for Embedded Linux

Форум — Development

Сабж.

TL;DR: растоман последовательно уменьшает размер собираемого бинарника на примере хеллоуворлда с ~6 Мб до ~200 кб, используя ряд тонких настроек Cargo и LLVM, а также прибегая к помощи Xargo и upx.

 ,

Virtuos86 ()

Запуск ЛИНТЕР x64

Галерея — Скриншоты

Прочитал, что на ReactOS успешно протестирована работа СУБД LINTER (ИСП РАН), https://linter.ru/

Я решил ... а чем мы, линуксоиды, хуже? К тому же, есть версия для Linux x64.

Скачал архив, распаковалось под обычным пользователем при запуске sh-установщика, указал каталог установки. Пару раз установщик спросил права root, для копирования файлов в /usr/bin и /etc/init.d

$ ls -1 /usr/bin/*linter*
/usr/bin/chklinter
/usr/bin/linter
/usr/bin/start_linter.sh
/usr/bin/stop_linter.sh

$ ls -1 /etc/init.d/*linter*
/etc/init.d/linter.sh

В целом, установка выполняется гладко. Единственное, утомляет интерактивность, надо много раз отвечать на вопросы. Но это дисциплинирует. На этапе установки init-скриптов вывалилась бага:

... Повторить ввод пароля снова?(Y/N) [N]: Y
Пароль: 
./tmp18286.sh: 171: [: -eq: unexpected operator
./tmp18286.sh: 171: [: -eq: unexpected operator
./tmp18286.sh: 171: [: -eq: unexpected operator
./tmp18286.sh: 171: [: -eq: unexpected operator
./tmp18286.sh: 171: [: -eq: unexpected operator
./tmp18286.sh: 171: [: -eq: unexpected operator
./tmp18286.sh: 171: [: -eq: unexpected operator
Системный стартовый скрипт успешно установлен. 
Для старта/остановки ЛИНТЕР используйте команду 
/etc/init.d/linter.sh start(stop).

В каждом каталоге установленной СУБД (у меня бинарники запускаются из /t/Linter/linter/) есть readme, с пояснением о назначении практически каждого файла.

К сожалению, версия БАСТИОН - по запросу, поэтому тестирую Стандарт.

В файле linter/bin/readme написано, что интерактивный доступ к СУБД - через утилиту inl.

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

$ inl
Интерактивный SQL в.6.0 для СУБД Линтер в.6.0
Copyright (C) 1990-2017 Relex, Inc. All rights reserved.

 Имя пользователя   : test
 Пароль пользователя: 
 INL : неверное имя пользователя.

Ага. Надо искать пароль к демо-базе. Он есть в корневом readme, база demo, пользователь SYSTEM, пароль MANAGER.

Для получения подсказки надо запускать inl -h, так как ключик --help утилита не понимает. Запускаем inl:

$ inl
Интерактивный SQL в.6.0 для СУБД Линтер в.6.0
Copyright (C) 1990-2017 Relex, Inc. All rights reserved.

 Имя пользователя   : SYSTEM
 Пароль пользователя: 
SQL> h
 INL : неверная команда
SQL> ?
 INL : неверная команда
SQL> help
 Alter    - изменить описание таблицы
 Alter proc <filename> - изменение процедуры (текст берётся из файла)
 Backup   - архивация базы данных
 Blob     - операции с блобом, формат команды:
   blob {insert|clear|append|get}
    {rowid=<row_id> <user_name>.<table_name>.<column_name>|column=<col_num>}
    [type=<blob_type>] {file=<file_name>|<text_blob_body>};
 Browse   - включить/выключить выдачу  результата запроса в табличном режиме
 Codepage - установить кодовою таблицу (866, 1251, koi8)
 Commit   - завершить текущую транзакцию
 Correct - исправление индекса для указанной записи
 Count    - выводить/не выводить кол-во кортежей
 Create   - создание таблицы, индекса или другого объекта БД 
 Create proc <filename> - создание процедуры (текст берётся из файла)
 Create trig <filename> - создание триггера (текст берётся из файла)
 Dbinfo   - получить информацию о базе
 Delete   - удаление строк из таблицы
 Disfill  - разрешить/запретить дополнение VAR типов до максимальной ширины
 Dishead  - разрешить/запретить вывод заголовка ответа 
 Display  - показать информацию об объекте БД, формат команды:
   display {variable|event} <object_name>

 INL : нажмите любую клавишу (q для выхода) : 


 Optimistic  - установить режим обработки транзакций optimistic
 Outfil[e]:  - определение файла вывода ответа
 Page     - включить/выключить выдачу ответа по страницам
 Pessimistic - установить режим обработки транзакций pessimistic
 Precount - разрешить/ запретить вавод количества строк ответа перед выводом результата 
 Press    - перестроить все индексы и сжать номера записей
 Priority:- установить приоритет запроса
 Rebuild  - восстановить таблицу
 Result:  - определение файла вывода ответа на следующий запрос 
 Revoke   - отменить привилегии пользователя
 Rollback - откатить текущую транзакцию
 Select   - выбор строк из таблицы
 Sh       - выполнить команду ОС
 Show     - показать описание таблицы
 Sleep    - приостановить выполнение
 Time {format}    - включить/выключить выдачу времени
 Truncate - очистка таблицы и усечение файлов
 Username - подключиться с другим именем пользователя
 Unload:  - определение разделителя
 Update   - замена строк

SQL> Dbinfo
 Информация о базе данных 'DEMO Database'
   СУБД Линтер версия                   : 6.0.17
   Размер памяти ядра                   : 5000
   Размер очереди каналов               : 100
   Размер очереди таблиц                : 178
   Размер очереди колонок               : 1073
   Размер очереди файлов                : 366
   Размер очереди пользователей         : 100
   Размер памяти сортировки             : 500
   Размеры кэшей транслятора SQL (0 - по умолчанию)
   польз/таблицы/столбцы/проц/кодировки : 0/0/0/0/0
   Количество процессов сортировки      : 1
   Предельная длина записи в таблице БД : 4096
   Интервал сброса изменений            : 0
   Интервал проверки соединения         : 30
   Журнал транзакций                    : включен
   Протокол обращений (LINTER.LOG)      : выключен
   Синхронный вывод                     : выключен
   Разный порядок байт клиента и сервера: нет
   Режим совместимости по стандартом SQL: нет
   Обязательные префиксы для геоданных  : нет
   Режим 'только чтение'                : нет
   Квантование по времени               : нет
   Увеличенный буфер обмена             : да
   Кодировка базы данных                : CP1251
   Операционная система                 : Linux

Из замеченных деталей: нет кодировки базы UTF-8. Видимо, решили ускорить алгоритмы поиска.

В каталоге samples нет примера для использования python-биндинга, но есть примеры для Tcl, PHP, C, Java, Perl.

Насчёт занимаемой памяти могу померять только так:

$ ps aux | awk 'BEGIN{RSS=0}/linter/{RSS=RSS+$6}END{print RSS}'
20872 Кбайт

linter$ du -sh 
168M	.

Debian 8 x64, i3wm

>>> Просмотр (1366x768, 68 Kb)

 ,

pacify ()

Кастомное что-то

Галерея — Скриншоты

!!! Скрин в жипеге !!!

Кому нужно качество, пойдите по ссылке со всеми скринами.

В связи с тем, что разработка sublime text внезапно возобновилась, вернулся на него и обнаружил, что с моего последнего скриншота, в результате кучи маленьких изменений, окружение стало уж совсем другим.

В первую очередь порадовал возврат на саблайм со связки атом+вим и переход на polybar вместо i3bar+py3status.

Номера+названия воркспейсов были заменены иконками, что было очень непривычно, т.к. раньше я всё раскидывал как попало, но в итоге пришёл к 3-4 воркспейсам на монитор и через небольшое время стало даже проще ориентироваться.

Минимализм из-за некоторых вещей немного пострадал, система обвещана, как незнаймо что, настолько, что я побаиваюсь всё это дело сохранять где-нибудь в гит репозитории, ибо тянуть нужно огромное количество скриптов, по пути кастомизации сделал много пулл реквестов в разные плагины, утилиты и форкнул youtube-dl в котором добавляю экстракторы для «пиратских» сайтов, которые по правилам youtube-dl в репозитории находиться не могут. Немного неприятно синхронизировать с апстримом, но стоит того, чтобы смотреть, например, аниме сезон одним плейлистом, без браузера, ещё и с сохранением последней серии и времени просмотра.

Если кому-то нужны конфиги и/или модули/скрипты/плагины коих куча, пишите в дискорд (d3adc0d3#9019), в других местах почти не сижу.

Как соберусь и запилю репозиторий со всеми dot файлами и README/скриптом для установки зависимостей и/или развёртывания всего этого дела, выброшу на общее обозрение.

Ах да, если что, в саблайме небольшой Nim пакет для работы с Riot Developers Api.

Ещё скриншоты:

https://imgur.com/a/KLRU2

Сводка:

Дистр: Arch

ВМ: i3-gaps

Бар: polybar

Редактор: Sublime Text 3 Dev

Терминал: Xfce4 Terminal

ШГ: Noto (UI), Noto Mono (Terminal), Fira Code (Sublime)

Тема саблайма: кастом

Плагин polybar'а для mpv: кастом

>>> Просмотр (1920x1080, 574 Kb)

 , , ,

Deleted ()

Лисперы, приведите пример превосходства Лиспа

Форум — Talks

Я вот пытаюсь понять, так ли хорош Лисп, как его малюют?

Я не имею ничего против функционального программирования, а также языков, которые в одних областях уделывают все остальные, а в других - наоборот, а также языков, которые нужно долго изучать прежде чем получится что-нибудь полезное (при условии, конечно, что что-нибудь полезное все-таки получится).

В общем, вопрос мой не «про функциональщину вообще», а именно про LISP.

И вот он, этот вопрос, точнее просьба: приведите, пожалуйста, пример кода на ЛИСПе (своего или чужого), который бы вызывал вау-эффект в форме «Вау! LISP реально могуч!». На любом диалекте Лиспа.

Но, конечно, нужно быть честными и соблюдать такие условия:

  • Нужно описание, что ваш код делает (желательно еще с комментариями внутри кода).
  • Код должен демонстрировать, прежде всего, превосходства Лиспа как языка, а не большое количество существующих макросов и библиотек.
  • Код должен решать какую-нибудь практическую задачу. Сколь угодно узкоспециализированную, но имеющую отношение к реальному миру. «Программа в 40 строк, которая парсит и исполняет сама себя рекурсивно, пока память не кончится» - это хорошо, но не интересно. Разве что если она перекомпилирует сама себя в Python, а код на Python перекомпилирует сам себя в LISP. Это хоть и не практично, но эпично.
  • Задача не должна быть совсем примитивной. «А вот тебе расчет факториала в одну строку» - это, конечно, хорошо, но интересует ведь что-то нестандартное.
  • Если дадите ссылку на статью, то в ней должен быть приведен код целиком, а не по кускам, которые надо старательно вычленять и собирать. Или сами приведите его. Я (пока) не знаю Лиспа, как я смогу его собрать и оценить?
  • Я знаю, что ЛОР - не моя личная армия, но если все так уж страшно заняты, то кто же сидит в толксах?


Как говорят американцы, «продайте мне Lisp».

Всем откликнувшимся заранее спасибо.

Перемещено tazhate из development

 , ,

proud_anon ()

Краткий обзор ряда консольных hex редакторов

Форум — Talks

Ну и на десерт: ещё есть hexdumper под названием hex, ориганал которого был написан в 1983-ем году. И он тоже дампит не только ASCII: http://saahriktu.org/hex/hex.png .

 

saahriktu ()

autostart'ы в совремённом Linux

Форум — Admin

Что-то много развелось нынче разных мест, в которых могут быть прописаны или откуда какие-нибудь программы/скрипты могут стартовать автоматически. В этом отношении Linux сделался похож на винду.

Уже не уверен, что все их знаю. Решил составить список, может кто чего скажет ещё по его поводу. Поскольку ориентируюсь на Debian, не исключено есть какие-то особенности в иных дистрах.

  1. /etc/init.d  — (rc.0-6) — классическое место для init-скриптов для запуска разных демонов. + rc.local
  2. cron — /etc/crontab запуск чего-то по расписанию кроном и его клонами.
  3. /etc/systemd/system — сервисы, которые запускает systemd
  4. etc/xdg/autostart/ — приложения, запускаемые при загрузке десктопа, а вообще есть (но может и не быть, но автозагрузка иметься) системная переменная $XDG_CONFIG_DIRS
  5. /etc/profile, а также скрипты внутри /etc/profile.d — запускаются bash подобными оболочками.
  6. ~/.bashrc ~/.profile и ~/.bash_logout при разлогинивании
  7. /etc/X11/xinit/xinitrc — запускается X-ами, но если есть ~/.xinitrc запускается он.
  8. /etc/X11/xinit/xserverrc — тоже может запускаться
  9. /etc/gdm3/Xsession (gdm — для старых) если gdm3 менеджер, соответственно есть ещё: /usr/share/config/kdm/Xsession и другие
  10. Автозапуск графическими оболочками, кроме автостарта десктопа есть ещё, например, автозапуск гномом (и прочими), например для гнома и кде в /usr/share/applications и для текущего пользователя в ~/.config/autostart/ для кде ещё и в ~/.config/plasma-workspace/shutdown и ~/.config/plasma-workspace/env
  11. Вообще в графических оболочках может быть дохренища всяких автозапусков на разные случаи прописано в отдельных настройках, например, в гномореестре: скринсейверы, приложения при нажатии кнопки Power и т.д.
  12. Модули ядра. Загрузка прописывается в /etc/modules — сами модули лежат в подкаталогах /lib/modules/`uname -r`/ с расширением .ko
  13. Может быть раздел в (U)EFI — BIOS, оттуда что-то тоже может стартануть, причём даже после загрузки ядра, если правильно понял. Как фича работает пока толком не понял.
  14. /etc/udev/rules.d — менеджер устройств в Linux.

 ,

anonymous_incognito ()

Pokemon GO + гугл + АНБ + картографирование всего!

Форум — Talks

Дорогие мои хомячата, хотите расскажу вам интересное об игре «Pokemon Go»? Linux тут при том что она запускается на яблооси и андроиде. Пруфов не будет.
— Разработчик игры: Niantic Labs. Внутренний старт-ап Гугла. Связи Гугла с Большим Братом — гуглите (лол!) сами, я пойду чуть глубже.
— Ниантик основан Джоном Хэнком (John Hanke), так же основавшим Keyhole, Inc ( «Замочная скважина» ) — проект для картографирования поверхности, выкупленный все тем же Гуглом и создавшим на его базе Гугл-карты, Гугл-Земля, Гугл-Стритс.
— А теперь внимание, следите за руками! Keyhole, Inc спонсировался венчурным фондом In-Q-Tel. Это фонд ЦРУ, вполне официально созданный в 1999 году.
Посредством вышеуказанных аппликаций, были решены важные задачи:
— Обновляемое картографирование поверхности планеты, включая дороги, базы и тд. А ведь когда-то, карты-километровки считались стратегическими и секретными. В гражданские карты даже специально вносились погрешности.
— Автомобили-роботы от Гугл-Стритс заглянули во все переулки, картографировав наши города, машины, лица…
Оставалась одна проблема. Как заглянуть в наши дома, подвалы, тенистые аллеи, казармы, госучереждения и так далее, по списку?
И что бы вы думали? Все та же конторка, Niantic Labs, выпускает гениальную вирусную игрушку, новомодной технологии дополнительной реальности.
Стоит вам скачать приложение, и дать ей соответствущие права (доступ к камере, микрофону, гироскопу, GPS, подключаемым устройствам, в том числе — носителям USB и тд), и ваш телефон тут же завибрирует, сообщая о нахождении первых трех покемонов! (Первая тройка всегда появляется сразу и поблизости).
Игра потребует заснять их со всех сторон, счастливо наградив вас первым успехом. А заодно получив фото помещения где вы находитесь, включая координаты и угол наклона телефона.
Поздравляю вас! Вы только что провели съемку вашей квартиры! Дальше объяснять?
Кстати, устанавливая игру, вы принимаете условия оферты. А она — не простая. Niantic вас официально предупреждает: «Мы сотрудничаем с государственными структурами и частными компаниями. Мы можем раскрыть перед ними любую информацию о вас или вашем ребенке...». Но кто же это читает?
А еще там есть пункт 6: «наша программа не имеет возможности выполнять запрос вашего браузера „Do not track“ -»Не следи за мной". Другими словами — следили и будут следить.
Итак, помимо добровольного и радостного картографирования всего и вся, открываются еще забавные возможности.
Например, захочется сами_знаете_кому узнать — что сейчас делается в здании, скажем, ГосДумы? И у десятков депутатов, уборщиц, журналистов — завибрируют телефоны: «Пикачу рядом!!!». И счастливые граждане извлекут свои смартфоны, активируя камеры, микрофоны, GPS, гироскопы… И закрутятся на месте, глядя в экран и нагружая каналы связи терабайтами видеопотка…
Бинго! Мир снова изменился, мир стал другим. Добро пожаловать в новую эру.

 , , , ,

Promusik ()

Стеганография в социальных сетях и прочих подобных публичных местах

Форум — Talks

После прочтения очередной новости про наказания для операторов мессенджеров у меня возникла идея (мне самому это, конечно не нужно, просто вольная фантазия на заданную тематику).

Ведь есть альтернатива использованию всяких Telegram, I2P и подобного.

1) Шифруем сообщение любыми средствами, переводим в base64, отправляем личным сообщением Facebook, ВКонтакте или любой другой соцсети. Ну а что, правилами же не запрещено, если второй собеседник не против, чтобы я слал ему бессмысленный набор букв (если против, то это уже спам будет). Разумеется, не обязательно это делать ручками, можно использовать специальный клиент, который будет логинится через API соцсети, но при получении и при отправке сообщений шифровать/дешифровать текст.

2) Проблема предыдущего способна в том, что факт обмена скрытой информацией на лицо. Но мы можем пойти дальше. Не шифровать текст, а превращать в шизофазию. В смысле, разработать алгоритм преобразования одного текста в другой. При этом новый текст не должен иметь никакой смысловой связи со старым и её должно быть проблематично восстановить, не зная какой-нибудь ключ. Писать всякий бред в личных сообщениях может быть запрещено ещё меньше, чем обмениваться base64-кодами.

3) Наконец апогей развития идеи. Программная генерация осмысленных бесед. Если оба собеседника пользуются одинаковым софтом, то чисто теоретически должно быть вполне реально генерировать не шизофазию, а связанную беседу на заданную тему. Это проще теста Тьюринга, потому что оба собеседника действуют за одно. Тут, кстати, получается интересная задача сходной тематики - программно сгенерировать диалог, который строннему наблюдателю покажется человеческим.

Последний вариант интересен ещё и тем, что можно использовать не только личные сообщения, но и публичные места вроде форумов и комментариев.

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

По-любому, я не первый кто до этого догадался. Интересно узнать, кто уже до этого доходил ранее. И да, суть именно в автоматизированном решении для соцсетей. А также какие подводные камни есть у этой идеи. Я пока не вижу способов защититься от этого. Даже если разрешить только официальные клиенты, ничто не мешает пользователю копипастить сообщения из программы и обратно в программу.

 , ,

KivApple ()