Ответы пользователя по тегу Linux
  • Почему iptables блокирует траффик?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    В syslog обнаружил, что мой ip блокируется почему-то


    Так это же из вот этого правила:
    5       30  5264 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 5/min burst 5 LOG flags 0 level 7 prefix "iptables denied: "

    а поскольку оно стоит перед правилом ACCEPT для пакетов openvpn, то оно выводит и принятые пакеты openvpn.
    Перенеси его в конец цепочки input, чтобы оно выводило только реально отброшенные пакеты.
    Ответ написан
  • Что бы вы хотели знать, когда перешли на линукс или первый раз поставили?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Что бы вы хотели знать, когда перешли на линукс или первый раз поставили?

    - как устроена пакетная система: как искать пакеты, как по файлу найти содержащий его пакет, как получить список файлов пакета
    - как устроены настройки (что в /etc, что в /proc, что в /sys), как они применяются
    - как разбираться с проблемами: какие бывают логи, аудит, strace, gdb
    - как искать информацию: man, info, apropos
    - какие есть стандартные инструменты в этой системе: POSIX.1-2008: find, grep, kill, less, ps, ...

    что нужно делать, что не нужно

    - если нужны какие-то библиотеки -- сначала искать их в репозитории дистрибутива, только потом пытаться собирать их самому
    - если собрал что-то сам, что отсутствует в репозитории -- оформи это пакетом
    - не нужно пересобирать ядро, почти наверняка
    Ответ написан
  • Как в Си вывести в консоль без записи в буфер?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Если я использую printf("asd"), то весь текст в кавычках будет выведен на экран и записан в лог файл. Вот такая команда: './a.out > file.log'.

    Здесь несколько несуразностей: 1) printf в ./a.out > file.log не выведет ничего на экран, всё будет перенаправлено в файл. но 2) сам printf об этом ничего не знает. Он выводит данные в поток стандартного вывода, куда они перенаправляются потом -- не его дело. 3) оператор > перенаправляющий вывод -- это инструкция командной оболочке как запускать программу, к самой программе отношения не имеет.

    Есть ли какая другая команда вывода, которая будет текст выводить только в терминал, без записи в файл?

    Есть! ./a.out, без каких-либо изменений в коде.
    Ответ написан
    4 комментария
  • По какой причине возникает ошибка?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    По какой причине возникает ошибка?
    неопределённая ссылка на символ «dlclose@@GLIBC_2.2.5»

    -ldl отсутствует в команде линковки или указан слишком рано?
    Ответ написан
  • Как rsync сжимает при передаче данных?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Не будет ли он на сервере создавать какие то архивы?

    Нет. rsync -z сжимает на лету.
    Из man rsync:
    --compress, -z
                  With this option, rsync compresses the file data as it is
                  sent to the destination machine, which reduces the amount
                  of data being transmitted -- something that is useful over
                  a slow connection.
    Ответ написан
    Комментировать
  • Есть ли хорошие книги для глубокого изучения Linux?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    понять работу ядра Линукс

    Порекламирую в очередной раз свой список: https://qna.habr.com/answer?answer_id=392065#answe...
    Ответ написан
    1 комментарий
  • Как указать в исполняемом файле абсолютный путь до него самого?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Есть ли возможность из файла узнать его (файла) местоположение?

    readlink -f "$0" для исполняемого скрипта или readlink -f "$BASH_SOURCE" для скрипта загружаемого через source.
    Ответ написан
    2 комментария
  • Какие есть специфичные функции для glibc?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    с чем могут возникнуть проблемы

    Можно начать отсюда.
    Из моего опыта, самое часто всплывающее отличие glibc от других libc -- поддержка версионирования символов.
    Ответ написан
  • Точка останова, Ptrace. Почему крашится программа после снятия точки останова?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    В чем проблема? Что я делаю не так?

    Я подозреваю, что не нужно делать regs.rip -= 1 ;, потому что процесс не может "выполнить" точку останова.
    Ну и для надёжности, я бы убедился, что в памяти куда пишется 0xcc действительно до этого было 0x55.
    Ответ написан
  • Как иизменить параметр tdp_mmu?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Как иизменить параметр tdp_mmu?

    стандартный способ
    echo N | sudo tee /sys/module/kvm/parameters/tdp_mmu
    не помогает?

    root@Line-host:~# echo "options kvm tdp_mmu=N" >/etc/modprobe.d/kvm-disable-tdp-mmu.conf
    root@Line-host:~# cat /sys/module/kvm/parameters/tdp_mmu
    Y

    Ну а чего ты ожидал, параметры из modprobe.d применяются при загрузке модуля. Можно сделать rmmod kvm ; modprobe kvm чтобы убедиться, что параметр применяется.
    Ответ написан
  • Linux NetworkManager аварийная остановка?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Любая команда start/stop/restart NetworkManager выдает одно и тоже

    Напомнило анекдот
    Доктоp, я кажется умиpаю! Куда ни ткну пальцем-везде такая боль! -Э-э, дpужочек, так у вас же палец сломан!

    sudo: resolve_conf.c:571: update_from_conf: Assertion 'resolve_conf_matches (resp, conf)' failed

    Это сообщение о том, что sudo сломался. Вспоминай что менял и возвращай обратно. Cудя по тексту ошибка может быть вызвана содержимым /etc/resolv.conf.

    Или воспользуйся su, например.
    Ответ написан
  • Как написать Netflow сенсор с нуля?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    как мне модифицировать мою программу, чтобы она могла определять потоки и корректно отправлять их коллектору?

    Для этого тебе надо понять, что такое "потоки" о которых ты говоришь, где находится информация о принадлежности пакета потоку и как до неё добираться.

    Если ограничиться определением по ссылке, то тебе надо будет разбирать сырые пакеты до сетевого уровня, откидывать не-IP, из IP извлекать IP-протокол, адрес источника, адрес назначения и тип сервиса, для протоколов TCP и UDP дополнительно извлекать порт источника и порт назначения. Всё это довольно просто сделать самому вооружившись RFC по упомянутым протоколам. Также надо будет понять, что делать с фрагментированными IP-пакетами.
    Ответ написан
    Комментировать
  • Что делать если компилятор nasm работает неправильно?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    выдает непонятную фигню

    Ну в программе нет проверки ввода, поэтому если вводить непонятную фигню, то и выводить она будет непонятную фигню. А если вводить цифры, так чтобы сумма не превышала 9, то приведённая программа прекрасно работает.
    Это, правда не значит, что в этой программе нет ошибок. Я вижу как минимум одну:
    res resb 1 
    …
    mov [res], eax

    классическое переполнение буфера. Её наличие, правда, на результат повлиять не может.
    Ответ написан
    Комментировать
  • Почему mono в ubuntu не находит .so?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    почему-то в ubuntu она отказывается находить его, хотя он есть в папке с программой.

    добавь путь до каталога с этим файлом .so в переменную окружения LD_LIBRARY_PATH перед запуском программы.
    Ответ написан
  • Зачем производится закрытие файлового дескриптора?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    зачем закрывается файловый дескриптор (exec 2<&-) перед тем как связать его с лог файлом?

    Я не вижу в этом никакого смысла, потому что системный вызов dup2 (которым вополняется связывание дескриптора логфайла с дескриптором #2) точно так же закрывает дескриптор в который происходит дупликация.
    Ответ написан
  • Могу ли я создать ссылку с параметрами на файл?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Чтобы каждый раз не задавать параметры дэймону, ищу как зафиксировать.

    aspirantes, написать скрипт в котором проставить нужные параметры. Например:
    $ cat > /home/222 <<EOF
    #!/bin/sh
    exec /home/111 -param1 -param2 "$@"
    EOF
    $ chmod +x /home/222
    Ответ написан
    Комментировать
  • Форматирование смонтированного диска?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Что будет с диском 1, если его смонтировать в папку диска 2 и затем отформатировать диск 2?

    Нельзя стандартными средствами "отформатировать" "диск" который примонтирован, а "диск 2" должен быть примонтирован, чтобы в его "папку" можно было смонтировать "диск 1".
    Если наплевать на условности и зафорсить форматирование на уровне блочного устройства, то с примонтированной файловой системой на диске 2 всё будет плохо, а диску 1 ничего не будет.
    Ответ написан
    Комментировать
  • Как задать значение последней переменной?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Имеется код вида
    int64_t a = b/c
    b и c какие-то произвольные числа
    требуется записать 0 в переменную a, если произошел SIGFPE.
    Проверять значения b и c не вариант, нужно как-то задавать значение для a в обработчике сигнала.

    Задача в такой постановке выглядит странной, если это не просто учебная задача на обработку сигналов.
    Если это учебная задача -- то конечно, и ассемблерная вставка тут может помочь, но это не вопрос для тостера.
    Если это практическая задача, то решить её можно следующими способами:

    - наиболее простой и переносимый, но не самый быстрый -- таки проверить значения b и c перед вычислениями.

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

    - следующий вариант -- нифига не простой и не переносимый -- устанавливать обработчик сигнала с помощью sigaction, заказывать доставку SA_SIGINFO и анализировать ucontext (третий аргумент) в обработчике сигнала. Сложность заключается в том, что связь между тем, что будет записано в ucontext и исходным кодом на C ни разу не очевидна. Т.е. можно извлечь из памяти по адресу info->si_addr инструкцию вызвавшую сбой, проанализировать её длину и куда она записывает результат, записать в результат 0 и передвинуть адрес возврата. Но это выглядит как неоправданное количество мороки.
    Ответ написан
  • Как вылечить ошибку "error communicating with TPM chip"?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    Нужно лечить или просто забить?

    Просто забить. Если ты не знаешь, что такое TPM, а система успешно грузится -- он тебе не нужен.
    Ответ написан
    Комментировать
  • Ошибка unhandled dwarf2 в Valgrind как можно исправить и с чем связана?

    jcmvbkbc
    @jcmvbkbc
    http://dilbert.com/strip/1998-08-24
    при использовании Valgrind выпадает ошибка:

    Расскажи для начала поподробнее, как именно ты его используешь.

    Опытным путём пришёл к выводу что проблемма связана с ошибкой в самом make.

    м... а почему valgrind ругается вот на это:
    ==6410== Valgrind:   "/media/mid/Main_file_m2/Road/rank 0/libftTester/a.out"
    Ответ написан