Ответы пользователя по тегу Linux
  • Как отправить сообщение с Linux на windows в локальной сети?

    @rPman
    Раньше использовался штатный майкрософтовский Messagener Service, в майкрософтовской сети можно отправлять сообщение командой msg, но после windows 7 майкрософт что то сломало в этом протоколе и ранее рабочий smbclient -M имя_компьютера теперь не работает, попробуй поищи в этом направлении

    но можно запустить скрипт, который будет мониторить какую-либо шару и отправлять для каждого нового файла в ней сообщения с помощью msg

    @echo off
    setlocal enabledelayedexpansion
    set "dir_path=c:\messages"
    
    :loop
    
    for %%f in ("%dir_path%\*") do (
        set /p msg_text=<"%%~f"
        msg "%%~nxf" "!msg_text!"
    	del "!dir_path!\%%~nxf"
    )
    
    ping -n 2 localhost
    
    goto loop


    в данном случае чтобы отправить сообщение нужно будет создать на этой машине (можно расшарить папку c:\messages и работать с ней через samba) файл с именем пользователя и содержимым с текстом сообщения (кажется в кодировке cp1251 если нужен русский, советую поэкспериментировать). Осторожно с пробелами в имени пользователя

    p.s. Еще проще, установить на windows машине ssh сервер, и запускать удаленно команды msg. OpoenSSH есть в windows 10 как штатный дополнительный компонент в настройках приложений
    Ответ написан
    Комментировать
  • Какая файловая система наиболее устойчива к сбоям?

    @rPman
    Ваша задача решается только аппаратными средствами. При ненадежном окружении машину нужно буквально выносить на расстояние, подальше от этого окружения (т.е. у клиента только монитор+клавиатура а редактировать документы на флешках запретить, я серьезно), это реально и не так дорого как кажется, но все же необходимо обеспечить место где железо не будет зависеть от электрика Васи и 'супер-чайника бабы Глаши'.

    На самом деле тут несколько проблем, каждая из которых решается разными способами:
    * сбои в железе, т.е. буквально смерть диска или флешки (нельзя на них работать, никак нельзя), в частых случаях это решают резервированием, спасибо для дисков существует RAID5, когда за счет добавление 1 диска к массиву (начиная с 3 дисков до 32 шт) обеспечивает работоспособность при потере любого 1 диска, а при добавлении 2-ух дисков, соответственно переживает потерю любых двух дисков.
    * сбои в электропитании - качественный бесперебойник и настройка на автоматическое сохранение работы. Система резервного электропитания - отдельный большой разговор и дешевым это не будет, в зависимости от того, какие бывают сбои, может оказаться что единственный вариант - дорогой online ups + дизельный генератор.
    Для рабочих windows и иногда и linux можно настроить hibernation по сигналу с UPS, это как минимум спасет не только файловую систему но и не сохраненную работу.
    Так же есть механизмы у систем виртуализации, если гостевая операционная система не умеет hibernation, то это сможет сделать сервер виртуальной машины (кажется любой)
    * сбои в софте и кривые руки пользователя - самый интересный сбой, когда по ошибке одним движением пользователь уничтожает важные данные, ошибка конфигурации отправляет базу в ноль или безвозвратно портит данные. На это тоже есть два решения, в обычном случае это регулярные бакапы, причем если есть база данных то можно сделать очень оперативный инкрементальный бакап прямо средствами БД (что то типа прерванной репликации например) и регулярные снапшоты (как еще одна форма бакапа, только не покидающая машину).
    И вот тут выбор файловой системы может сильно помочь, например cow fs типа btrfs или zfs умеют делать снапшоты бесплатно, без деградации скорости работы (до этого был lvm но его снапшоты кратно! замедляли запись, пока снапшот не удалишь), у windows ntfs тоже есть shadow copy но там какие то особенности есть, не делающие это чистым снапшотом, т.е. пользовательские файлы так резервируются а система не всегда, ну через нее делают бакап перед установкой обновлений.
    Можно настроить буквально поминутные снапшоты с удалением тех что старее часа/суток/... и фоновым переносом их на бакап сервер, т.е. это сочетание системы резервного регулярного и оперативного копирования
    Ответ написан
    Комментировать
  • Как правильно сделать загрузочную флешку с win11 на линуксе?

    @rPman
    Данная ошибка не связана со способом создания загрузочной флешки, если вы видите это окошко то 'проверку на формат уже прошли'.

    Данное сообщение говорит что в системе нет драйверов например на USB или дисковый контроллер и дальше работать не будет.

    Есть следующие решения:
    * найти в биосе usb-cdrom режим (видел такой в паре материнок старых), в довесок, чтобы с гарантией, сделать копию диска простым копированием iso образа прямо в устройство флеш-накопителя (условно если он будет /dev/sdb вот в него и копируй с помощью dd), и пофиг какого этот диск размера (лишь бы было больше или равно размеру iso), этот метод кстати универсальный и позволяет загружать liveusb как на EFI так и на legacy mbr.

    * переключить систему в режим EFI или Legacy mbr, в зависимости от ситуации, драйвера могут использоваться разные в т.ч. из BIOS для режима EFI

    * Заранее разбить диск на два раздела (либо добавить в систему еще один диск) и чтобы с гарантией (это если будет еще проблема в обнаружении диска, т.е. установщик покажет пустой список) использовать SATA устройство, а в биосе переключить в режим IDE (драйвера для этого режима с гарантией есть в установщике), но не забыть позже установить драйвера на материнку и вернуть AHCI режим. Первый раздел использовать как целевой для установки а на второй, отформатировав его в fat32/ntfs/exfat, скопировать в корень содержимое установочного iso образа. Дело в том что установщик windows будет искать свои файлы в корне всех дисков системы, если не найдет их на загрузочном диске (не удивлюсь если эта фича поддерживается еще с тех времен, когда систему устанавливали с флопи-дисков)

    * если ничего не помогает, тогда соверши первую фазу установки (когда идет копирование файлов до перезагрузки) или даже всю, создав виртуальную машину в работающем linux (рекомендую qemu прямо из командной строки, ее проще новичку для данной задачи использовать) и прописав в ней весь используемый жесткий диск. К сожалению без дополнительных телодвижений это сработает только при использовании legacy mbr, так как для efi установщик должен еще прописать информацию об установленной системе в биосе, но это можно будет сделать позже средствами linux (у меня опыта нет, гугли, утилита efibootmgr)
    Ответ написан
    Комментировать
  • Развертывание VPS из локально настроенного образа. Так вообще делают?

    @rPman
    Некоторые провайдеры предоставляют такую возможность, так как linux дистрибутивы изначально ориентированы не только на реальное железо но и на виртуальное, поддержка обычно хорошая. Единственное, это доступно только если используется виртуализация kvm/vmware/vbox/hyperv/... но не паравертуализация (lxc/virtuozzo/...)

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

    Совет, выбирай ядро с пометкой cloud/vps/kvm и т.п., а то универсальные ядра долго грузятся.

    Я настраивал VPS, загрузившись в штатный livecd и настраивая с помощью debootstrap минимальный конфиг, настройки сети (чаще всего особенности тут и их достаточно скопировать из текущей установки), пароли, языковые пакеты и локаль и т.п.

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

    p.s. Самое смешное когда я это делал, мне это нужно было делать ради единственного отличия от провайдерского конфига - файловая система btrfs с поддержкой сжатия на лету (у меня были очень объемные текстовые дампы, сжимаемые 10х). В общем все в твоих руках.
    Ответ написан
    2 комментария
  • Как выполнить копирование данных в каталог?

    @rPman
    не монтируй сетевые каталоги при нестабильных сетевых соединениях, это проблема linux, как не крути она будет вылезать странными способами.

    Правильно, использовать ssh или специализированные протоколы и синхронизировать каталоги через них, вот на вскидку варианты:
    * scp, штатная утилита, работает через ssh, по сути это то же самое что cp только по ssh
    * rsync, продвинутая cp, может работать в т.ч. через ssh, умеет передавать дельту (но там вопрос про эффективность в быстрых сетях)
    * инкрементальные снапшоты btrfs, максимально эффективно позволяет получать и соответственно передавать дельту изменений в файловой системе (на уровне кластеров), скорость файловой системы не деградирует при использовании снапшотов, а в момент сбора дампа разницы диск не нагружен (все остальные способы сканируют каталоги и файлы чтобы выявить дельту)
    идеален для случаев если нужно синхронизировать огромное количество файлов либо огромные файлы.
    * кластерные/распределенные файловые системы, позволяют синхронизировать каталоги буквально один к одному в реальном времени (идеальны если нужно много читать и мало писать, типовая сетевая файловая система при чтении полезет к файлу в сеть, а кластерная - в локальную копию), есть нюансы и сложности. Например DRBD
    Ответ написан
    Комментировать
  • Почему некорректно выводятся символы utf-8 в linux?

    @rPman
    , ccs=UTFxxx это придумка Майкрософт с целью диверсии на стандарты (часть из плана по монополизации мира, успешного).

    В стандарте c++ есть методы конвертации из одной кодировки в другую std::convert....
    Ответ написан
    Комментировать
  • Процесс загрузки ОС на виртуальную машину не работает застряв на установке. Что делать чтобы продолжить?

    @rPman
    У меня все работает.
    Захожу на сайт Parrot OS, выбираю загрузки, Security Edition, Torrents, версия для VirtualBox,.. скачивается .ova файл, выбираю в интерфейсе VirtualBox в меню импорт машины, выбираю скачанный файл, импортирую, запускаю... все работает, все дополнения уже установлены...

    На каком шаге у тебя не так?
    Хост система linux, версия virtualbox 7.0
    Ответ написан
    1 комментарий
  • Как раздать блочное устройство с linux-компьютера через usb-c порт?

    @rPman
    jcmvbkbc дал отличный ответ

    я же предлагаю альтернативный вариант для расширения горизонтов, на steamdesk нужно установить istgt - демон для публикации дисков по протоколу iscsi, для загрузки по сети поддерживается в т.ч. и windows, для загрузки понадобится еще настройка DHCP сервера и разместить где то EFI загрузчик по протоколу tftp либо при должном красноглазии можно по http.

    p.s. для бездисковой linux машины (ты же не сказал что собираешься загружать) для загрузки по сети существует тьма тьмущая других вариантов, основа та же DHCP и tftp для ядра и initramfs, но вот сам диск можно монтировать практически по любому протоколу от nbd (блочное устройство но проще чем iscsi) до nfs
    Ответ написан
    1 комментарий
  • Несколько пользователей или контейнеризация?

    @rPman
    будет трудно найти того, кто будет это настраивать и поддерживать
    все ваши проблемы от сюда. Либо ищите готового специалиста, либо выращивайте своего

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

    Самая большая проблема у вас это не борьба со злоумышленниками, с ними вы без специалиста никак не справитесь (контейнеры только уменьшат вероятность их появления), а учет ресурсов. Вам нужно уметь выставлять квоты на время, процессор, gpu, диск... все это доступно из коробки в linux но без красивого GUI все нужно изучать самостоятельно.

    Настоятельно рекомендую организовывать работу с пользователями linux, все инструменты настроены именно на это, а контейнеризация перенесет все под одну гребенку и усложнит.
    Ответ написан
    1 комментарий
  • Можно ли использовать ядро Android в дистрибутивах GNU\Linux?

    @rPman
    android - это 'полноценный' linux, с заменой окружения на свое и проприетарным загрузчиком (это не вина android как ОС, это вина производителей и возможно скрытых договоренностей с гугл) и зачастую с особым (не linux) способом работы с периферией.

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

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

    Если же что то получится, то скорее всего никакого доступа к GPU у тебя не будет (будет framebuffer), будут скорее всего проблемы с сенсорным экраном, радиомодулем (например wifi и bluetooth) и системой энергосбережения. Т.е. сделать безголовый сервер у тебя получится, и даже устройства по usb внезапно смогут подключиться, но спотыкаться будешь на каждом шагу.

    p.s. есть проекты запуска привычного linux окружения как приложение android, ищи termux/debian_root и т.п.
    Ответ написан
    2 комментария
  • Как симулировать сбои в файловой системе?

    @rPman
    Гугл qemu hardware failure simulation.

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

    Тесты проводить автоматические, очень много
    Ответ написан
    Комментировать
  • Как соединить виртуальную машину с сетью основной, чтобы другие компьютеры в локальной сети могли соединяться с ним?

    @rPman
    В настройках сетевых устройств сменить тип NAT на Сетевой мост, в этом случае машина будет получать ip адрес по тем же правилам что и любая другая машина в твоей сети
    Ответ написан
    Комментировать
  • Чем зашифровать несколько баш-файлов и запускать их расшифрование для всей сессии пользователя?

    @rPman
    Зашифруй домашнюю директорию encryptfs, первая же ссылка в гугле, ну и конечно отходя от машины блокируй консоль... без пароля или доступу к резервной копии ключей шифрования получить доступа к файлам не получится

    p.s. на сколько я помню, установщик linux по умолчанию предлагает это сделать
    Ответ написан
    4 комментария
  • Как установить Python 3.9.6 на Ubuntu 20.04 LTS?

    @rPman
    Можно воспользоваться ppa репозитарием 'от сообщества'

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

    p.s. очень смешно, уже есть готовые бесплатные ИИ ассистенты, способные не просто болтать но и искать в интернете (майкрософтовский bing chat), я удивлен что количество простых вопросов на площадке не уменьшилось, неужели не знаете? как можно пропустить персонального ассистента, который благодаря интернету умнее (ладно эрудированней) любого обывателя и не только, он за тебя не только ищет но и читает найденные статьи и дает из них нужную выжимку.
    Ответ написан
  • Дистрибутив Linux с поддержкой Windows-программ?

    @rPman
    Reactos? Единственный дистрибутив, заточенный на запуск windows приложений. Не уверен по поводу качества. Проблема больше в лицензионной доступности компонент, которые можно скачивать самостоятельно пользователями но нельзя распространять установленными с дистрибутивом. В wine это сделано с помощью winetricks, как это сделали в proton, я хз.

    Совет, для запуска приложений из linux, установи lutris, там готовая база скриптов для игр и программ.
    Ответ написан
  • Не устанавливается ни одна ось?

    @rPman
    Драйвера на текущий чипсет (а точнее на дисковый контроллер) нужно заранее в систему интегрировать (сделать это можно с помощью ntlite, как в установочный образ так и в уже установленную систему).

    Еще момент, если проблемы создает биос (и обновлением/даунгрейдом проблема не решается) то можно установить grub linux и уже из него запускать windows (при установке grub он самостоятельно просканирует диски и добавит в меню загрузки найденный windows).

    Настоятельно рекомендуется начинать эксперименты с legacy mbr метода загрузки (обязательно диск разбить не используя gpt формат разделов). Еще момент, вполне возможно что при выборе EFI, прописанный в биосе драйвер контроллера диска ограничивает версию ОС, но можно попытаться поискать драйвер в старых прошивках биоса для таких же материнских плат (или просто перебором) и интегрировать этот драйвер в прошивку биоса (этот квест тот еще, но кому то даже помогал).

    Если все совсем плохо, но в биосе есть возможность выбирать, выбери IDE режим для контроллера (не ACHI и не RAID), в этом случае штатный драйвер ide контроллера от майкрософта сможет диск обнаружить. Но ide режим работает заметно медленнее, и настоятельно не рекомендуется для ssd.

    И совсем в догонку, windows 7 это теперь хардкор, попробуй сначала установить win8.1 он хоть и хуже с производительностью но не на столько как win10.

    p.s. всегда спрашиваю, зачем вам win7 на слабом ноутбуке? зачем вам вообще на нем windows? какие задачи там нужно решать и возможно вам хватит linux? Благодаря lutris (это менеджер разных запускалок win приложений типа wine/proton) это стало сильно проще даже с играми (процентов 10 от того что не поддерживается официально вдруг работает без проблем)
    Ответ написан
    Комментировать
  • Как в линукс проверить, запущено ли net приложение?

    @rPman
    Нет нужды создавать mutex или semaphore, исторически, хоть в windows хоть в linux для этого открывают файл (пустой, их называют .lock) в режиме SharedAccess NONE
    https://learn.microsoft.com/ru-ru/dotnet/api/syste...
    https://learn.microsoft.com/ru-ru/dotnet/api/syste...
    FileMode = Create тогда файл будет автоматически создан если отсутствует и не выдаст ошибки если уже есть
    FileAccess = Write чтобы файл можно было создать (если создать его заранее то хватит Read)
    SharedAccess = None запрет на повторное открытие хоть на чтение хоть на запись


    При попытке открыть такой файл повторно, будет выдана ошибка, при этом при закрытии процесса, операционная система следит за закрытием файлов автоматически.
    Ответ написан
    Комментировать
  • Можно ли дать возможность user с nologin shell исполнять определенную команду?

    @rPman
    sudo -i -u user_name команда
    данная команда запустит команду от нужного пользователя без процесса авторизации
    соответственно запихни ее в скрипт, разреши запускать данный скрипт через sudo (да получается каскадно 2 sudo) другому пользователю, которому разрешен логин через ssh
    Ответ написан
  • Как проверрить правильность установки linux?

    @rPman
    Не хочу чтобы у меня опять слетел ubuntu изза поврежденных пакетов после обновы
    Штатное обновление не должно ломать систему, поэтому ищи причину в другом, например проблемы с оборудованием.

    Поврежденный при доставке пакет даже не будет пытаться установиться, там цифровая подпись и проверка корректности данных.

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