Ответы пользователя по тегу Linux
  • Нужен ли отдельный linux user для сайта?

    ValdikSS
    @ValdikSS
    Нужны отдельные unix-пользователи на сервис/проект/сайт, иначе в случае взлома сайта А будет возможность читать и модифицировать файлы сайта Б, т.к. все файлы принадлежат www-data.

    Отдельные пользователи нужны всем сервисам, которые так или иначе взаимодействуют с файлами. В случае PHP это php-fpm (или другой исполнитель) — у каждого сайта должен быть свой пул со своим пользователем. Всё, с чем взаимодействие ведётся только по сети/сокету и имеет правильное разделение привилегий (базы данных), должны работать от своего (стандартного) пользователя.

    В случае веб-сервера также уместно разделить статические данные от кода: картинкам и .js-файлам следует назначить www-data, чтобы веб-сервер мог их прочесть и раздать, а php-код любого сайта при этом не мог эти данные модифицировать. Верно и в обратную сторону — веб-сервер не сможет отдать ваши .php-файлы без их исполнения в случае некорректной настройки веб-сервера.
    Ответ написан
    Комментировать
  • Почему Linux постоянно обращается к внешнему диску во время простоя?

    ValdikSS
    @ValdikSS
    Если вы недавно создали файловую систему на диске, и особенно если раздел большой (многотерабайтный), то на нём еще могут создаваться inode'ы.
    https://fedetft.wordpress.com/2022/01/23/on-ext4-a...

    Если к диску обращаются программы, обнаружить конкретный процесс или файл поможет эта статья:
    https://habr.com/ru/articles/476414/
    Ответ написан
    1 комментарий
  • Как настроить множество сеервисов на одном сервере?

    ValdikSS
    @ValdikSS
    Но я все еще могу ввести s1.domain.com:9090 или domain.com:9090 и попасть на второй сервер

    Потому что вы пробрасываете (expose) порты из Docker на хост. Не используйте эту функцию, тогда сервисы не будут открываться на порту хоста.
    Ответ написан
  • Почему такое странное поведение статической маршрутизации в linux?

    ValdikSS
    @ValdikSS
    Так как вы пытаетесь маршрутизировать подсеть через роутер 10.0.0.1, которая доступна через другой "роутер" (10.0.0.2) в вашем же L2-сегменте, роутер 10.0.0.1 отправляет вашему компьютеру ICMP Redirect в целях оптимизации маршрута.
    Настраивается принятие ICMP-редиректов опцией net.ipv4.conf.all.accept_redirects и сопутствующими, а отправка — net.ipv4.conf.all.send_redirects и сопутствующими.

    Почему маршрутизация перестаёт работать, когда трафик идёт напрямую? Сложно сказать без отладки, но пальцем в небо: Wi-Fi — не Ethernet, хоть и пытается быть похожим на него. В Wi-Fi не передаётся MAC-адрес отправителя, из-за чего, например, его нельзя добавить в Ethernet-бридж.
    Компьютер подключён также по Wi-Fi? В таком случае, вероятно, смартфон получает ваши пинги с MAC-адреса роутера 10.0.0.1, соответственно и ответить пытается ему, а не компьютеру.
    Ответ написан
    Комментировать
  • Как отобразить работу скрипта Python запущенного через systemctl?

    ValdikSS
    @ValdikSS
    Скорее всего, если ваш скрипт пишет в stdout/stderr, а вы это не видите в журнале, проблема с буферизацией вывода.
    Запускайте скрипт как python3 -u bot.py. Параметр -u отключает буферизацию.

    -u Force the stdout and stderr streams to be unbuffered. This option has no effect on the stdin stream.
    Ответ написан
  • Безопасны ли такие настройки nftables?

    ValdikSS
    @ValdikSS
    Не смогут ли посторонние лица эксплуатировать сервер в качестве маршрутизатора?
    Могут, у вас же в IPv4 FORWARD-таблице policy accept без каких-либо запрещающих правил.
    Добавьте разрешающее правило для интерфейса туннеля, а остальное заблокируйте.
    Также блокировка всех исходящих и входящих IPv6-пакетов создаст проблемы программам, рассчитывающим на доступность IPv6-связности (хотя бы внутри хоста). Разрешите пакеты с/до lo.
    Ответ написан
    Комментировать
  • Как вывести Линукс из бесконечного свопа?

    ValdikSS
    @ValdikSS
    Alt-PrintScreen-F нажмите, это запустит Out-of-memory-killer и убьет процесс с самым большим потреблением RAM.
    А чтобы избавиться от проблемы — Давняя проблема Linux: плохая работа при недостатк... (общая информация) + ядро 6.1+ с включённым MGLRU.
    Ответ написан
    Комментировать
  • Dnsmasq: как использовать DNS-серверы, полученные по DHCP от провайдера?

    ValdikSS
    @ValdikSS
    Используйте любой способ динамической настройки. В NetworkManager есть плагин для задействования dnsmasq, если вам нужен именно этот сервер.
    https://fedoramagazine.org/using-the-networkmanage...

    Если у вас не используется NetworkManager, а используется dhclient или dhcpcd, напишите хуки, которые бы правили конфигурационный файл и перезапускали dnsmasq.
    Ответ написан
  • Какой Линукс подойдет для этого компьютера?

    ValdikSS
    @ValdikSS
    У вас 32-битный процессор? Из современных именитых x86 32-битных дистрибутивов осталось только два: Debian и OpenSUSE Tumbleweed. Остальные либо еще формируют 32-битные пакеты, но не выпускают установочные .iso (а значит, никто эти пакеты не проверяет), либо вовсе не собирают x86, либо многие пакеты в них сломаны, как в ArchLinux32.

    Рекомендую вам попробовать с Debian 12 (bookworm, в данный момент в testing), т.к. он достаточно свежий, а главное — в нём свежее ядро, в котором решена давняя проблема Linux — зависание при недостатке памяти.
    После установки, выполните следующие команды, чтобы увеличить отзывчивость:

    sudo apt install zram-tools
    sudo sed -i 's/^#PERCENT=.*/PERCENT=150/' /etc/default/zramswap
    echo 'w-      /sys/kernel/mm/lru_gen/enabled          -       -       -       -       y' | sudo tee /etc/tmpfiles.d/mglru.conf
    echo 'w-      /sys/kernel/mm/lru_gen/min_ttl_ms       -       -       -       -       1000' | sudo tee -a /etc/tmpfiles.d/mglru.conf


    Перезагрузитесь, затем пробуйте пользоваться системой.

    Если же у вас Pentium 4 из более поздних поколений, то можете установить 64-битный дистрибутив, из выбор значительно шире. См. статью по ссылке выше.
    Ответ написан
    Комментировать
  • Автоматическая раздача ipv6?

    ValdikSS
    @ValdikSS
    В автоматическом режиме
    Никак, Wireguard предназначен только для статических туннелей, преимущественно сервер-сервер. Никакой конфигурации клиента со стороны сервера не предусмотрено.
    Ответ написан
    Комментировать
  • Как сделать загрузочную USB из ISO файла под Linux?

    ValdikSS
    @ValdikSS
    Вот так точно работает:

    dd if=linuxmint-20.2-xfce-64bit.iso bs=1 count=432 of=isohdpfx.bin
    
    xorriso -as mkisofs -V "Mint" -o final/linuxmint-20.1-xfce-oldpc-le9-07.07.2021-64bit.iso -J -joliet-long -cache-inodes -isohybrid-mbr isohdpfx.bin -b isolinux/isolinux.bin -c isolinux/boot.cat -boot-load-size 4 -boot-info-table -no-emul-boot -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -isohybrid-gpt-basdat unpacked
    Ответ написан
    Комментировать
  • Как по SSH на удалённой машине вывести на экран уведомление?

    ValdikSS
    @ValdikSS
    wall позволит отправлять сообщения всем пользователям машины, часто они дублируются как уведомление в DE.
    Ответ написан
    Комментировать
  • За счет чего происходит ускорение программ при наличии модуля ядра linux?

    ValdikSS
    @ValdikSS
    Модуль TUN/TAP, через которые работают все не-ядерные VPN, очень медленный из-за того, что у него есть только интерфейс получения и отправки пакетов по одному пакету за вызов. Большое количество переключений контекста между ядром и пользовательским уровнем очень затратны, что влечёт за собой неэффективное использование процессорного времени.

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

    Оценить ускорение от уменьшения переключений контекста довольно просто, достаточно провести тестирование со значительно увеличенным MTU пакета. Вот какие цифры приводит проект slirp4netns.

    Implementation |  MTU=1500  |  MTU=4000  |  MTU=16384  |  MTU=65520
    ---------------|------------|------------|-------------|------------
    slirp4netns    | 1.07 Gbps  | 2.78 Gbps  |  4.55 Gbps  |  9.21 Gbps
    Ответ написан
    4 комментария
  • Как решить проблему по перезаписыванию resolv.conf?

    ValdikSS
    @ValdikSS
    1. Ищем официальную документацию на CentOS 7. Находим.
    2. Ссылки на смену DNS нет, но есть ссылки на документацию RedHat 7. Переходим.
    3. Открываем раздел Configuring and managing networking > Chapter 33. .... Бинго!


    Смотрите, как просто!
    Ответ написан
    1 комментарий
  • Загрузка SSH-ключа через psftp на срвер armbian?

    ValdikSS
    @ValdikSS
    Значит ли это, что система не находит нужный файл? Или она не может его открыть?
    Система не может открыть файл, без подробностей. Возможно, его и нет.
    Где должен быть расположен файл-ключ, чтобы по команде в psftp он был записан в память сервера?
    В текущей директории, из которой выполняется psftp.
    Ответ написан
    7 комментариев
  • Почему постоянно тупит sudo?

    ValdikSS
    @ValdikSS
    Возможно, проблема в systemd-homed, несколько раз встречал такое на своем сервере. Посмотрите журналы через journalctl -f в момент проблемы, если увидите надписи про homed или dbus, то это оно.
    Ответ написан
    Комментировать
  • Что бы вы хотели знать, когда перешли на линукс или первый раз поставили?

    ValdikSS
    @ValdikSS
    Хочу услышать то, что хотели бы услышать вы на самом старте использования

    • Подавляющее большинство людей, сидящих на форумах и отвечающих на вопросы — новички или linux-энтузиасты в плохом смысле (пердолики), зачастую дающие вредные советы, так как сами поверхностно разбираются в вопросе;
    • Люди, советующие установить ArchLinux/Manjaro/Gentoo/другой неглавенствующий дистрибутив — игроки в компьютер, которым интересно исследовать систему, а не пользоваться ПК по его прикладному назначению;
    • Решение проблем следует начинать с прочтения официальной документации дистрибутива (у основных дистрибутивов она имеется);
    • Почти всё описанное по этой и этой ссылке верно.
    Ответ написан
    Комментировать
  • Как в Linux вывести данные из файлов и записать построчно?

    ValdikSS
    @ValdikSS
    Предполагается, что данные "id", "x=" и "Laterality" расположены именно в таком порядке.

    find /home -type f -print0 | xargs -0 -n1 awk '/^id: / {id=$0} /^x=/ {x=$0} /Laterality=/ {print id, x, $0}'
    Ответ написан
  • OS desktop для слабого VPS (512Ram 5Gb)?

    ValdikSS
    @ValdikSS
    https://notes.valdikss.org.ru/linux-for-old-pc-fro...
    https://www.linux.org.ru/gallery/workplaces/16862790
    На фотографии представлен веб-браузер Qutebrowser с 7 открытыми вкладками, в режиме работы с QtWebkit. Как видно, даже с 7 вкладками (2 из которых ­— страницы Википедии с большим количеством картинок) браузер потребляет около 140 мегабайт, что позволяет комфортно сёрфить интернет на смешных 512 МБ RAM.
    Из других браузеров, до сих пор поддерживающих QtWebkit, можно отметить Otter Browser и KDE’шный Konqueror, который дополнительно поддерживает еще и KHTML (3 движка в одном браузере), но в Debian собран только с WebEngine. Первый в репозиториях Debian не присутствует.
    Браузер Seamonkey, актуальная версия которого построена на базе движка из Firefox 60, работает более-менее сносно, но не блестяще — рендерит дольше QtWebkit’а примерно в 2-3 раза, потребляет заметно больше памяти, зато работает со всеми современными сайтами. Можно использовать в качестве запасного варианта, когда QtWebkit не справляется.
    Ответ написан
    3 комментария
  • Как пробросить 25-й порт используя SSH-туннель?

    ValdikSS
    @ValdikSS
    Чтобы маршрутизировать порт 25 через SSH-туннель, нужно:
    1. Запустить туннель с SOCKS-портом: ssh -D 12345 user@host;
    2. Настроить соксификатор, например, redsocks или v2ray;
    3. Настроить правила iptables/nftables для перенаправления исходящих TCP-запросов на порт 25 к порту соксификатора.


    Гораздо проще, надёжнее и технически корректнее настроить маршрут через VPN, тем более, что WireGuard у вас уже есть:
    sudo ip route add default dev wg0 table 100
    sudo ip rule add ipproto tcp dport 25 table 100
    Ответ написан
    3 комментария